サンプルコード


using Npgsql;

string connString = "Server=localhost;Port=5432;Database=myDatabase;User Id=myUsername;Password=myPassword;";
NpgsqlConnection conn = new NpgsqlConnection(connString);
conn.Open();
// テーブルにid、name、ageのカラムがある場合を想定する
NpgsqlCommand cmd = new NpgsqlCommand("SELECT COUNT(*) FROM myTable WHERE id=@id", conn);
cmd.Parameters.AddWithValue("id", 1);
int count = (int)cmd.ExecuteScalar();
if (count > 0)
{
    // レコードが既に存在する場合は更新する
    cmd = new NpgsqlCommand("UPDATE myTable SET name=@name, age=@age WHERE id=@id", conn);
    cmd.Parameters.AddWithValue("id", 1);
    cmd.Parameters.AddWithValue("name", "John");
    cmd.Parameters.AddWithValue("age", 30);
    cmd.ExecuteNonQuery();
}
else
{
    // レコードが存在しない場合は追加する
    cmd = new NpgsqlCommand("INSERT INTO myTable (id, name, age) VALUES (@id, @name, @age)", conn);
    cmd.Parameters.AddWithValue("id", 1);
    cmd.Parameters.AddWithValue("name", "John");
    cmd.Parameters.AddWithValue("age", 30);
    cmd.ExecuteNonQuery();
}

解説

このコードでは、myTableという名前のテーブルに、id=1のレコードを追加または更新します。

SELECT COUNT(*)クエリを使用して、テーブルにid=1のレコードが存在するかどうかを確認します。

レコードが存在する場合は、UPDATEクエリを使用して、nameとageを更新します。

レコードが存在しない場合は、INSERTクエリを使用して、新しいレコードを追加します。