我有一个名为itemIDs的字符串,以逗号分隔(12,43,34,..),为了将其用作参数,我需要将其转换为int,因为db中的itemID是int格式。 / p>
这是我写的,但我收到错误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))
我无法弄明白,这里似乎有什么问题?
答案 0 :(得分:2)
你从哪里获得itemID?如果它是一个字符串,您可以生成mathematicaly,而不是来自外部源,您可以使用:
... "SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE itemID IN (" + itemIDs + ")"
答案 1 :(得分:1)
我建议您在WHERE子句中采用不同的方法。您可以使用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)