重複の可能性:
SQL IN 句をパラメータ化しますか?
ときどき、ユーザーが複数のアイテムを選択し、それらに対して一括アクションを実行できるようにするシステムに取り組んでいます。通常、実行時に次のような SQL を構築することに頼りました。
string inClause = String.Join(", ", selectedIds);
string command = "SELECT * FROM Customer WHERE CustomerId IN ({0})";
command = String.Format(command, inClause);
もちろん、このスタイルのコードは SQL インジェクションのために安全ではありません。これは、パラメーター プレースホルダーを挿入してパラメーターを作成することで解決できました。
それでも、私が考慮していない別のアプローチがあるかどうか疑問に思っています。IDごとにコマンドを1回実行したくないのは確かです。