2012-03-29 32 views
2

我的表:如何将同一列的多个参数传递给sqlserver 2008中的SP?

id address tag 
1 test class1 
2 test1 class2 
3 test3 class3 

在SP我写的select语句是这样的:

Select address from mytable where tag IN (@SingleParameter) 

传递参数,从UI到SP为:

string SingleParameter = ""; 
      SingleParameter = "class1,class2,class3"; 
      comand.Parameters.AddWithValue("@SingleParameter",SingleParameter); 

然后没有得到,如果任何结果记录在表格中。

虽然发送像

string SingleParameter = ""; 
      SingleParameter = "class1"; 
      comand.Parameters.AddWithValue("@SingleParameter",SingleParameter); 

然后得到结果单个值。 如何将字符串中的多个值传递给SP? 请告诉我........

+0

[如何编写包含多个参数的查询的存储过程?](http://stackoverflow.com/questions/9747724/how-to-write-a-stored-procedure-which-contains查询中使用多个参数) – 2012-03-29 06:03:11

+0

[参数化SQL IN子句?](http://stackoverflow.com/questions/337704/parameterizing-an-sql-in-clause) – 2012-03-29 09:07:25

回答

1

有几种方法可以做到这一点。另外,我相信这里已经有了一个讨论。我建议查看thisthis链接。

基本上,这里的选项,我看到他们:

  1. 将您的查询到存储过程中,并用它来传入参数字符串解析成实际值。然后你可以运行你的查询。在网络上和网络上有几个实现。
  2. 使用表值参数 - 一个特殊的参数,用于定义表格中的多个变量。
  3. 使用临时表格 - 填写必要的标签,然后加入。凌乱的路要走。
  4. 将一个查询转换为n个查询
  5. 填写查询字符串而不是参数化。

我建议与第二个,但它可能无法移植到其他数据库(例如MySql没有表值参数的概念)。肯定看文章 - 他们是一个伟大的阅读。

相关问题