如何将整型值的列表从后面的代码传递给SP

本文关键字:代码 SP 整型 列表 | 更新日期: 2023-09-27 18:18:41

我有一个int类型的List,在这个List中我得到了一些值现在我想把所有的值一个一个地传递给我的存储过程或者用逗号分隔,

背后的代码:

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 =@ImageId)

如何将整型值的列表从后面的代码传递给SP

将它们以逗号分隔的字符串传递,然后在t-sql中拆分它是迄今为止我发现的最佳选择。

拆分函数在T-SQL中的等效?将有助于分割操作。

In Code Behind:

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

创建一个sql函数来分割逗号分隔的int列表http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648将该列表插入到一些表变量中,然后您可以编写您的SP如下

声明@ImageIDs表(ImageID INT)

插入到@ImageIDsselect * from dbo.fn_Split(@ImageID)

如果存在(SELECT 1 FROM ImageINstance I INNER JOIN @ImageIDs Img ON I. imageid = Img. imageid)

现在我在For循环的帮助下逐个传递值,它对我来说工作得很好。

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