2009-05-17 2 views
1

쉼표 (12,43,34, ..)로 구분 된 itemIDs라는 문자열이 있는데이를 매개 변수로 사용하려면 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

어디에서 itemID를 가져 오나요? 당신이 mathematicaly 생성 문자열, 그리고 외부 소스에서가 아닌 경우 다음을 사용할 수 있습니다

... "SELECT ItemID, Name, RelDate, Price, Status FROM item_k WHERE itemID IN (" + itemIDs + ")" 
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)