2009-05-17 8 views
1

J'ai une chaîne nommée itemIDs séparés par des virgules (12,43,34, ..) et pour l'utiliser comme paramètre j'ai besoin de le convertir en int puisque l'itemID dans le db est en format int.en utilisant charindex en requête sql

c'est ce que je l'ai écrit mais je reçois une erreur disant 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)) 

Je ne peux pas comprendre, ce qui semble être la question ici?

Répondre

2

D'où obtenez-vous les articles? Si c'est une chaîne que vous générer mathématiquement, et ne provient pas d'une source extérieure, vous pouvez utiliser:

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

je suggère une approche différente ici pour votre clause WHERE. Vous pouvez utiliser IN pour spécifier votre liste.

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

qui correspond à SQL comme ceci:

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