2009-05-17 10 views
1

私はitemIDsという名前の文字列をカンマ(12,43,34、..)で区切っています。これをパラメータとして使用するには、dbのitemIDがintであるためintに変換する必要があります。 int形式です。sqlクエリでcharindexを使用する

これは私が書いたものですが、私は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

あなたはどこからアイテムIDを取得していますか?それはあなたがmathematicaly生成する文字列だし、外部ソースからのものではない場合は、使用することができます。

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

は、私はあなたのWHERE句のために、ここでは異なるアプローチを示唆しています。 INを使用してリストを指定することができます。

このようなSQLに対応
using (SqlCommand searchResult = new SqlCommand(" 
SELECT ItemID, Name, RelDate, Price, Status 
FROM item_k 
WHERE itemID IN (" + itemIDs + ")" 

SELECT ItemID, Name, RelDate, Price, Status 
FROM item_k 
WHERE itemID IN (12,43,34) 
関連する問題