C#LinQからSQLデータコンテキストsql
を使用してカスタムステートメントを実行するための最良の方法は何ですか?IN
私が試してみました:
db.ExecuteCommand(
"UPDATE tblCard SET used = 1 WHERE id IN ({0}) AND customer_id = {1}",
Request.Form["ids"], customer_id
);
これは、フォームを通過した1つのアイテムには問題ありませんが、たとえば「2,1」を介して投稿された場合、sqlclient
例外が発生します。
nvarchar値「2,1」をデータ型intに変換するときに変換に失敗しました。
代わりにstring.formatを使用してパラメーターを挿入すると、正常に機能しますが、明らかにこれはSQLインジェクションに対してオープンです。