あなたはSQL-Injectionに対してオープンです。文字列を連結してクエリを作成しないでください。代わりに を使用しますSQL-Parameters
。これにより、コードが読みやすくなり、あなたのようなエラーが防止されます。
次に例を示します。
int amt;
using (var con = new SqlConnection(ConnectionString)) {
var sql = "INSERT INTO dbo.Message(UserID, Message) VALUES(@UserID, @Message);";
using (var cmd = new SqlCommand(sql, con)) {
cmd.Parameters.AddWithValue("@UserID", userID); // passed as argument
cmd.Parameters.AddWithValue("@Message", txtMessage.Text); // f.e. "John's"
con.Open();
int inserted = cmd.ExecuteNonQuery();
}
}
同じことが、他の sql のようなUPDATE
コマンドでも機能します。