0

我正在尝试遵循 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 和一个 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>";
4

1 回答 1

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>
于 2013-04-25T16:48:31.213 回答