2009-03-16 2 views
6

매개 변수를 통해 값을받는 'IN'절이 포함 된 ASP.NET TableAdapter를 통해 실행하려는 쿼리가 있습니다.ADO.NET TableAdapter 매개 변수

제 질문은이 매개 변수를 어떻게 지정합니까? 나는 다음과 같은 조건문을 쓰려고 생각했다 :

AND b.group_category_id in (@ParamList) 

여기서 @ParamList는 매개 변수의 문자열이다. "4,12,45,23"이지만 지정된 id가 Integer이므로 String을 Integer로 변환 할 수 없다는 오류가 발생합니다. 이것은 의미가 있지만 ASP.NET TableAdapter의 SQL 문에서 이러한 목록을 지정하는 방법이 있습니까?

+0

정말 원하지 않는 해결 방법을 사용하지 않고서는 실제로 할 수 없다는 사실이 밝혀지면서 여기에 답을 받아 들일 수없는 것 같습니다. 죄송합니다! –

답변

0

내 질문에 답해주세요. 할 수 없습니다.

0

당신은 #table를 검색에 사용 후, #table에 결과를 쉼표로 구분 된 문자열로 @ParamList 통과 문자열을 구문 분석하고 삽입 할 수 동적 SQL (exec() 문)을 사용하지 않는 한 제한적이지만 가능한 경우이를 피하는 것이 좋습니다. 내가 본

+0

예, 동적 SQL 사용을 피하려고합니다. –

1

한 가지 해결 방법 :이 경우

WHERE charindex(',' + cast(b.group_category_id as varchar) + ',', @ParamList) > 0 

가 @ParamList이 형태의 문자열이 될 것이다 ", 4,12,45,23,"

그것은 아니다 "꽤 "하지만 컴파일 된 쿼리의 매개 변수와 이점을 보존합니다. 숫자를 검색하기 때문에 하위 문자열은 고유 한 일치를 보장합니다.