如何将值列表作为参数传递给OleDbCommand

时间:2014-09-15 16:28:54

标签: c# oledbconnection oledbcommand

我想执行查询

SELECT id, name FROM MyTable WHERE (id, name) IN ((1, 'One'), (2, 'Two'))

使用OleDbConnectionOleDbCommand。是否可以将IN子句的内容作为参数传递给命令?如果是,那么我应该传递一个参数值是什么值?列表,IEnumerable或其他什么?如果没有,则可以传递单个值列表,如查询

SELECT id, name FROM MyTable WHERE id IN (1, 2)

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

例如。