- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【C#】SQL文の中に変数を埋め込む方法)
【C#】SQL文の中に変数を埋め込む方法
このQ&Aのポイント
- C#の.NETを使用してWindowsアプリを作成している際、PostgreSQLデータベースとの接続を確立した後、INSERT文で値を挿入する際に、int型変数に置き換える方法について教えてください。
- C#の.NETとPostgreSQLデータベースを接続し、INSERT文に値を挿入する際、int型変数を使ってVALUES句を置き換える方法について教えてください。
- C#の.NETを使用してWindowsアプリを作成していますが、INSERT文でVALUES句の値をint型変数に置き換える方法がわかりません。教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
String.Formatを使えば埋め込めますが……。 String.Format("INSERT INT TEST_TABLE VALUES({0}, {1})", x, y) MSDN: String.Format メソッド (System) http://msdn.microsoft.com/ja-jp/library/system.string.format.aspx ただし,この方法では「ダメなプログラム」の典型例にしかなりません。 NpgsqlParameterを使って,パラメータ化するのが普通です。 # xおよびyがint型固定であるなら問題が発生しないのでString.Formatでもよいですが……。 NpgsqlCommand command = new NpgsqlCommand("INSERT INT TEST_TABLE VALUES(:x, :y)", conn); command.Parameters.Add(new NpgsqlParameter("x", x)); command.Parameters.Add(new NpgsqlParameter("y", y)); おそらく,これで実行できるはずです。
お礼
ご回答ありがとうございます。 すみません。「INSERT INT」が「INSERT INTO」の間違いでした。 訂正し下記コードにて期待動作をさせることができました。 int x = 1; int y = 2; NpgsqlCommand command = new NpgsqlCommand("INSERT INTO TEST_TABLE VALUES(:x, :y)", conn); command.Parameters.Add(new NpgsqlParameter("x", x)); command.Parameters.Add(new NpgsqlParameter("y", y));