Как передать список значений int в SP из кода позади? - PullRequest
1 голос
/ 21 декабря 2011

У меня есть список int, в котором я получаю какое-то значение, теперь я хочу передать все значения моей процедуре хранилища один за другим или через запятую,

Код сзади:

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

в СП

@ImageId int //declaration

IF Not Exists(SELECT ImgIns.Id FROM ImgIns WHERE ImgIns.ImageId =@ImageId)

Ответы [ 3 ]

1 голос
/ 21 декабря 2011

Передача их в виде строки, разделенной запятыми, и разбиение ее в t-sql - лучший вариант, который я нашел до сих пор.

Эквивалент функции разделения в T-SQL? поможет в операции разделения.

В коде:

var IDList = String.Join(",", new List<int> {1,2,3});
Cmd.Parameters.AddWithValue("@ImageIds", IDList);
0 голосов
/ 21 декабря 2011

Сейчас я передаю значение одно за другим с помощью цикла for, и он работает нормально для меня ..

 for (int i = 0; i < IDList.Count; i++)
 {
    Cmd.Parameters.Clear();
    Cmd.Parameters.AddWithValue("@ImageId", IDList[i]);
 } 
0 голосов
/ 21 декабря 2011

Создайте функцию sql для разделения списка, разделенного запятыми. Int http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648 вставьте этот список в некоторую переменную таблицы, а затем вы можете записать свой SP как

DECLARE @ImageIDs TABLE (ImageID INT)

INSERT INTO @ImageIDs select * from dbo.fn_Split (@ImageID)

ЕСЛИ СУЩЕСТВУЕТ (ВЫБРАТЬ 1 ИЗ ИДЕНТИФИКАЦИИ ИЗОБРАЖЕНИЯ, ВНУТРЕННЕГО СОЕДИНЕНИЯ @ImageIDs Img ON I.ImageID = Img.ImageID)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...