2011-12-21 33 views
1

我有一個整型的List在我得到一定的價值,現在我想通過一個或逗號分隔的所有值傳遞給我的存儲過程之一,如何將int值列表從後面的代碼傳遞給SP?

代碼背後:

Cmd.Parameters.AddWithValue("@ImageId", IDList); //IDList is list of int which need to pass in my SP 

在SP

@ImageId int //declaration 

IF Not Exists(SELECT ImgIns.Id FROM ImgIns WHERE ImgIns.ImageId [email protected]) 
+0

如果您想要傳遞逗號分隔列表的替代方法,您還可以將列表序列化爲XML並傳遞XML值。 – Purplegoldfish 2011-12-21 10:27:47

回答

0

現在我在for循環的幫助下一個接一個地傳遞值,它的工作正常..

for (int i = 0; i < IDList.Count; i++) 
{ 
    Cmd.Parameters.Clear(); 
    Cmd.Parameters.AddWithValue("@ImageId", IDList[i]); 
} 
1

將它們傳遞給逗號分隔的字符串並將其拆分爲t-sql是我迄今發現的最佳選擇。

Split function equivalent in T-SQL?將有助於拆分操作。

代碼背後:

var IDList = String.Join(",", new List<int> {1,2,3}); 
Cmd.Parameters.AddWithValue("@ImageIds", IDList); 
+0

可以給你一些exp。代碼爲此 – Rocky 2011-12-21 10:24:31

0

創建SQL函數分裂逗號分隔列表INT http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648插入此列表到一些表varibale,然後你可以wrtie你的SP一樣

DECLARE @ImageIDs表 (圖像標識INT)

INSERT INTO @ImageIDs SELECT * FROM dbo.fn_Split(@ImageID)

IF EXISTS(SELECT 1 FROM ImageINstance I INNER JOIN @ImageIDs Img ON I.ImageID = Img.ImageID)

相關問題