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

时间:2012-03-29 05:29:39

标签: sql-server-2008

我的表:

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? 请告诉我........

1 个答案:

答案 0 :(得分:1)

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

基本上,以下是我看到的选项:

  1. 将查询转换为存储过程,并使用它将传入的参数字符串解析为实际值。然后你可以运行你的查询。在网上和网上都有几种实现方式。
  2. 使用表值参数 - 一种特殊参数,用于以表格形式定义多个变量。
  3. 使用临时表 - 用必要的标签填充它,然后用它连接。凌乱的路要走。
  4. 将一个查询转换为n个查询
  5. 填写查询字符串而不是参数化。
  6. 我建议使用第二个,但它可能无法移植到其他数据库(例如,MySql没有表值参数的概念)。绝对看看这些文章 - 它们很棒。