2011-02-06 2 views
0

У меня есть адаптер в C#, и я хочу знать, есть ли значение (тип int) в списке значений. Как мне это сделать? когда я делаю send IN @sendList, это дает мне ошибку. Я пытался использовать LIKE как этот @sendList LIKE '%'+ send +'%' но адаптер не может преобразовать из INT в VARCHAR ...Адаптер с использованием «IN»

+1

Укажите, пожалуйста, ошибку и добавьте код, объясняющий, как вы пытались извлечь этот запрос. – HuBeZa

+1

Предложение 'IN' требует, чтобы ваши значения были 1. разделены запятой и 2. заключены в круглые скобки, такие как' IN (1,4,6,9) ' – bitxwise

+0

, но не могу ли я получить список как параметр? @HuBeZa, я написал, как я пытался получить. ошибка в том, что он не может сделать @sendList LIKE '%' + отправить + '%' becuse "send" is int – aharon

ответ

0

Самый простой способ будет разделив список идентификаторов:

... 
string.Format("Send IN {0}", string.Join(sendList.Select(id => id.ToString())); 

Но если вы настаиваете на параметре , вы можете написать функцию SQL, которая преобразует ваш список в строку. Вы можете найти множество примеров (like this) over the web.

+0

вы все равно можете использовать параметры, вам просто нужно построить предложение in с таким количеством '?' Как элементов в вашем списке - 'in (?,?,?,?,?)' И пропустить список и назначить параметры – nos

Смежные вопросы