2013-04-01 6 views
0

CAML 쿼리를 따르려고했지만 2 개의 문서를 모두 반환하는 대신 올바르게 작동하지 않습니다.CAML 쿼리가 제대로 작동하지 않습니다.

<Where><And><Or><Eq><FieldRef Name='Participant' /><Value Type='User'>Project1, test</Value></Eq><Eq><FieldRef Name='Participant' /><Value Type='User'>Project2, test</Value></Eq></Or><Eq><FieldRef Name='Department' /><Value Type='Text'>Positioning</Value></Eq></And></Where> 

나는 CAML 쿼리 빌더에서 테스트를 시도했지만 위와 같이 두 개 또는 하나의 AND 조건을 추가 할 수있는 옵션을 찾을 수 없습니다.

내 전체 쿼리 작성 코드는

   strQuery1 = "<Where><And>"; 
       strQuery1 +="<Or>"; 
       foreach (string p in ParticipantNames) 
       { 
        strQuery1 += "<Eq><FieldRef Name='Participant' /><Value Type='User'>" + p + "</Value></Eq>"; 
       } 
       strQuery1 +="</Or>"; 
       strQuery1 += "<Eq><FieldRef Name='Department' /><Value Type='Text'>" + dept + "</Value></Eq></And></Where>"; 

답변

1

당신이 'ParticipantNames'변수에지고 얼마나 많은 값을 확인 했입니까? 왜냐하면 And, 또는 CAML의 조건은 2 개의 조건 만 지정할 수 있으므로 반복 횟수를 확인하십시오.

<Where> 
<And> 
    <Or> 
    <Or> 
    <Eq><FieldRef Name='Participant' /><Value Type='User'>Project1, test</Value></Eq> 
    <Eq><FieldRef Name='Participant' /><Value Type='User'>Project2, test</Value></Eq> 
    </Or> 
    <Eq><FieldRef Name='Participant' /><Value Type='User'>Project3, test</Value></Eq> 
    </Or> 
    <Eq><FieldRef Name='Department' /><Value Type='Text'>Positioning</Value></Eq> 
</And> 
</Where> 
관련 문제