CAML:无法完成此操作

时间:2013-04-03 15:10:18

标签: sharepoint-2010 caml

似乎我的以下查询失败并抛出“无法完成此操作”。但是,当我在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>

1 个答案:

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