我想执行查询
SELECT id, name FROM MyTable WHERE (id, name) IN ((1, 'One'), (2, 'Two'))
使用OleDbConnection
和OleDbCommand
。是否可以将IN
子句的内容作为参数传递给命令?如果是,那么我应该传递一个参数值是什么值?列表,IEnumerable或其他什么?如果没有,则可以传递单个值列表,如查询
SELECT id, name FROM MyTable WHERE id IN (1, 2)
答案 0 :(得分:1)
只要我知道你不能。我在过去尝试类似的东西,我找到的唯一方法是创建一个存储过程,它接收一个逗号分隔的字符串并动态创建查询,最后用结果字符串调用sp_execute
。
答案 1 :(得分:0)
查看http://www.codeproject.com/Tips/231217/Parameters-SqlCommand-vs-OledbCommand-and-OdbcComm
当然,您将负责编写SQL。 SQL不为IN参数提供匿名对象。您必须在单个字段中指定要查找的内容。
Select * from table where field in (1,2,3) --Assuming field is an integer
例如。