正しい構文は、パラメーター化されたクエリを使用し、SQL クエリを作成するときに文字列連結を絶対に使用しないことです。
string query = "SELECT * FROM Table2 WHERE BloodGroup = @BloodGroup AND District = @District AND Club_Name = @ClubName";
using (SqlDataAdapter sda = new SqlDataAdapter(query, Mycon1))
{
sda.SelectCommand.Parameters.AddWithValue("@BloodGroup", tsblood.Text);
sda.SelectCommand.Parameters.AddWithValue("@District", tsdist.Text);
sda.SelectCommand.Parameters.AddWithValue("@ClubName", tscname.Text);
...
}
これにより、パラメーターが適切にエンコードされ、コードが SQL インジェクション攻撃に対して脆弱になりません。チェックアウトbobby tables
。
また、SqlDataAdapter などの IDisposable リソースを using ステートメントにラップして、例外が発生した場合でも適切に破棄され、プログラムがアンマネージ ハンドルをリークしないようにする方法にも注意してください。