2009-05-17 4 views
1

У меня есть строка с именем itemID, разделенная запятой (12,43,34, ..), и для использования в качестве параметра мне нужно преобразовать его в int, поскольку itemID в db является в формате int.using charindex in sql query

это то, что я написал, но я получаю сообщение об ошибке говорящее Incorrect syntax near the keyword 'as'.

using (SqlCommand searchResult = new SqlCommand("SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE (itemID = cast(charindex(',',(@itemIDs as int))))", searchCon)) 

Я не могу понять, это то, что, кажется, проблема здесь?

ответ

2

Откуда вы получаете идентификаторы товара? Если это строка, которую вы генерировать mathematicaly, а не от внешнего источника вы можете использовать:

... "SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE itemID IN (" + itemIDs + ")" 
1

Я хотел бы предложить другой подход здесь для ИНЕК. Вы можете использовать IN для указания своего списка.

using (SqlCommand searchResult = new SqlCommand(" 
SELECT ItemID, Name, RelDate, Price, Status 
FROM item_k 
WHERE itemID IN (" + itemIDs + ")" 

Это соответствует SQL так:

SELECT ItemID, Name, RelDate, Price, Status 
FROM item_k 
WHERE itemID IN (12,43,34)