【发布时间】:2013-06-04 13:13:57
【问题描述】:
我正在尝试使用 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 enum 和 System.Data.SqlTypes namespace 中的类型均未表明支持此方案。我必须恢复为动态 SQL(即使用字符串操作手动编写最终 SQL CommandText)吗?
【问题讨论】:
标签: c# sql ado.net where-in parameterized-query