我正在尝试使用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)吗?