2009-10-05 4 views
0

여러 문자열이 포함 된 IN 문으로 하위 소닉 쿼리를 수행하려고합니다. 문자열을 수동으로 하드 코드하면 제대로 작동합니다. 예 :여러 개의 문자열을 사용하는 Subsonic IN 쿼리

qry.Where(table.Columns.mycolumn).In(combinedString) 

하지만 때마다 내가 시도 :

Dim qry As New [Select]("mySelectColumn") 
qry.From(table.Schema) 
qry.Where(table.Columns.mycolumn).In("string1", "string2", "string3") 

Hoever는, 내가 좋아하는 마지막 줄의 모양을 만들 것 VB에서 하나의 변수에서 IN 문을 문자열을 당길 수 있어야합니다 문자열을 하나의 VB 문자열로 연결하면 결과가 없습니다. 심지어 어떤 SQL을 전달하려고하는지 정확히 알 수 없습니다. buildsqlstatement()를 사용하면 다음과 같은 IN 문이 표시됩니다. mycolumn0In1, : mycolumn0In2, : mycolumn0In3 ... 실제로 무엇을하려고하는지 알 수 없습니다.

나는 아무 소용로 VB 변수에 대한 이러한 변화를 시도했다 : mystring에 = "" "mystring1" "," "mystring2" "" mystring에 = " 'mystring1', 'mystring2'"

VB와 아음속과 함께 하나의 IN 절에 여러 문자열을 연결할 수있는 아이디어가 있습니까?

답변

1

동료가 http://blog.levo.us/index.php/2008/06/25/subsonic-select-where-in-solution/으로 나를 지적했고 결국 해결책을 찾았습니다. 내 문제는 명시 적으로 arraylist로 VB 변수를 선언하지 않았다는 것이 었습니다. 나는 단순히 그것을 Dim'ing하고 ArrayList로 반환 된 함수의 결과를 할당했습니다. 작동하지 않았다 어떤

- getstrings() 함수는 ArrayList를 반환 무슨 짓을

Dim myarraylist = getstrings() 
... 
qry.Where(table.Columns.mycolumn).In(myarraylist) 

을 작업 :

Dim myarraylist as ArrayList = getstrings() 
... 
qry.Where(table.Columns.mycolumn).In(myarraylist) 
관련 문제