似乎我的以下查询失败并抛出“无法完成此操作”。但是,当我在CAML查询构建器中测试此查询时,它工作正常。
<Where>
<And>
<Or>
<Eq><FieldRef Name='Participant' /><Value Type='User'>Test1</Value></Eq>
<Eq><FieldRef Name='Participant' /><Value Type='User'>Test2</Value></Eq>
<Eq><FieldRef Name='Participant' /><Value Type='User'>Test3</Value></Eq>
</Or>
<Eq><FieldRef Name='Department' /><Value Type='Text'>Positioning</Value></Eq>
</And>
</Where>
答案 0 :(得分:8)
您的查询似乎在<OR>
标签上有两个以上的条件。您在<Or>
或<And>
标记中最多只能有两个条件。
此元素可以嵌套在其他And和Or元素中。服务器支持无限复杂的查询。但是,任何给定的And元素只能有两个合取;也就是说,只有两个子元素。如果需要连接三个或更多条件,则必须嵌套And元素,如下一节中的第三个示例所示。
请参见此处:MSDN
所以你需要重写你的查询,如:
<Where>
<And>
<Or>
<Eq>
<FieldRef Name='Participant' />
<Value Type='User'>Test1</Value>
</Eq>
<Or>
<Eq>
<FieldRef Name='Participant' />
<Value Type='User'>Test2</Value>
</Eq>
<Eq>
<FieldRef Name='Participant' />
<Value Type='User'>Test3</Value>
</Eq>
</Or>
</Or>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>Postiioning</Value>
</Eq>
</And>
</Where>