我正在尝试关注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>";
答案 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>