2012-03-29 78 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沒有表值參數的概念)。肯定看文章 - 他們是一個偉大的閱讀。

相關問題