我正在尝试使用WHERE … IN @xs
子句创建参数化 ADO.NET 查询,其中@xs
是可能不连续值的简短列表,例如(2, 3, 5, 8, 13)
. 这可以做到吗?如果是这样,怎么做?
这不起作用:
int[] xs = { 2, 3, 5, 8, 13 }; // I've also tried using a List<int> instead
var c = new System.Data.SqlClient.SqlCommand();
c.CommandText = "SELECT … FROM … WHERE … IN @xs";
c.Parameters.AddWithValue("@xs", xs); // throws ArgumentException due to `values`
System.Data.SqlDbType
枚举和System.Data.SqlTypes
命名空间中的类型都不表明支持这种情况。我必须恢复到动态 SQL(即CommandText
使用字符串操作手动编写最终 SQL)吗?