2014-12-15 2 views
0

Я хотел бы выбрать строки, обновить строки или удалить строки, передав значения в качестве параметра для работы с предложением IN. Он работает при работе со строковым типом или (varchar), но не работает при работе с целыми числами.SQL Server CE, работающий с параметром в разделе типа integer

SELECT 
    recID, recDisplayOrder, recShowItem, recAssetID, recSequence, IsSeparator 
FROM 
    tCommonAssets 
WHERE 
    recID IN (@recIDs) 

recID - целое число. Передача значений, подобных 46, 47, 48 параметру @recIDs, терпит неудачу, поскольку SQL Server CE видит это как строку, а не целую цепочку. Помните, что при рассмотрении ответа SQL Server CE не поддерживает подзапросы. SQL Server CE не поддерживает производные таблицы, SQL Server CE не поддерживает хранимые процедуры.

У меня уже есть похожие статьи по этому вопросу на этом форуме, но они имеют дело с SQL Server, а не с SQL Server CE.

Я ценю ваше время и обратную связь.

+0

, а не пытаться сделать параметры целых чисел могли бы вы не бросили RECID в ИНЕКЕ в строку? переверните проблему вокруг ... – Lefty

+0

Hi Lefty. Использование такого заявления, к сожалению, не работает. SELECT recID, recDisplayOrder, recShowItem, recAssetID, recSequence, IsSeparator FROM tCommonAssets WHERE (CONVERT (VARCHAR (10), recID) IN (@recIDs)) Я действительно стараюсь не использовать для каждого цикла в каждой строке для обновлений и удаляет – thejax

ответ

0

Вы не можете передать параметр, вы должны построить оператор SQL в виде строки в коде. Вы должны построить/объединить оператор SQL в коде, так что условие WHERE становится:

WHERE recID IN (46,47,48) 
+0

Hi Erik. Если я поместил значения 46,47,48 в параметр @recIDs, то sql ce воспринимает это как строку, а не целую целую цепочку. Гипотетически, если recID был типом varchar, проходящий в ('46', '47', '48'), тогда никакой проблемы. Он видит ряд строк, но по какой-то причине он не может разобрать 46, 47, 48 в переменной, передаваемой на SqlCeParameter. Он задыхается. Даже когда я запускаю запрос из окна запроса из проводника сервера, он задыхается. Возможно, это просто ограничение в SqlCe. – thejax

+0

Обновлено мой ответ – ErikEJ

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