CAML查询无法正常工作

时间:2013-04-01 18:11:07

标签: sharepoint-2010 caml

我正在尝试关注CAML查询,但它无法正常工作,而不是返回2个文件,而是全部返回。

<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查询构建器中进行测试,但没有找到任何选项来添加两个带有上述条件的OR。

我的完整查询构建代码是,

                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 个答案:

答案 0 :(得分: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>