.Net のパラメーター化されたクエリは、例では常に次のようになります。
SqlCommand comm = new SqlCommand(@"
SELECT *
FROM Products
WHERE Category_ID = @categoryid
",
conn);
comm.Parameters.Add("@categoryid", SqlDbType.Int);
comm.Parameters["@categoryid"].Value = CategoryID;
しかし、私は次のことをしようとしてレンガの壁にぶつかっています:
SqlCommand comm = new SqlCommand(@"
SELECT *
FROM Products
WHERE Category_ID IN (@categoryids)
OR name LIKE '%@name%'
",
conn);
comm.Parameters.Add("@categoryids", SqlDbType.Int);
comm.Parameters["@categoryids"].Value = CategoryIDs;
comm.Parameters.Add("@name", SqlDbType.Int);
comm.Parameters["@name"].Value = Name;
どこ
- CategoryIDs は、数字 "123,456,789" (引用符なし) のカンマ区切りのリストです。
- 名前は文字列です。単一引用符やその他の不適切な文字が含まれている可能性があります
これの正しい構文は何ですか?