SQL文に埋め込みパラメータを使用するサンプルです。
サンプル
例)SQLServerからSELECTする
以下情報のSQLServerを対象としています。
- サーバ名:192.168.1.1\test
- DB名:db01
- ユーザID:hoge
- パスワード:pass
using System;
using System.Data.SqlClient;
// 接続情報
string connStr = @"Data Source=192.168.1.1\test;User Id=hoge;Password=pass;Initial Catalog=db01";
try
{
// コネクションを取得する
using (var conn = new SqlConnection(connStr))
{
// コネクションをオープンする
conn.Open();
// コマンドを取得する
using (SqlCommand cmd = conn.CreateCommand())
{
// SQL文をセットする
cmd.CommandText = @"SELECT * FROM test_table WHERE id = @id AND kbn = @kbn";
// パラメータをセットする ※パターン1、パターン2どちらでもOKです
//(パターン1)
cmd.Parameters.Add(new SqlParameter("@id", 123));
cmd.Parameters.Add(new SqlParameter("@kbn", "Z"));
// (パターン2)
//cmd.Parameters.Add("@id", SqlDbType.Int, 5).Value = 123;
//cmd.Parameters.Add("@kbn", SqlDbType.NChar, 1).Value = "Z";
// SQLを実行する
SqlDataReader reader = cmd.ExecuteReader();
// 実行結果を取得してコンソールに出力する
while (reader.Read())
{
string col1 = reader["COL1"].ToString(); //カラム名「COL1」の値を取得する
string col2 = reader["COL2"].ToString(); //カラム名「COL2」の値を取得する
Console.WriteLine(col1 + "-" + col2);
}
}
}
}
catch (SqlException ex)
{
Console.WriteLine(ex);
}
21行目~28行目でパラメータを指定しています。
備考
- SQLに埋め込み文字を使用したい場合は、SQL文の文字を埋め込みたい箇所に「@」でパラメータを指定して、
上記のようにParameters.Addで値を指定します。 - 上例のパターン1(23, 24行目)、パターン2(27, 28行目)のどちらで指定してもOKです。