首页 > 解决方案 > 此 caml 查询有什么问题以获取异常“无法完成此操作。请重试”?

问题描述

我正在对 SharePoint 列表执行 caml 查询!我有 5 个条件,我将每 2 个条件放在一个标签中。但仍然出现此异常:“无法完成此操作。请重试!”

<And>
    <Eq>
        <FieldRef Name='fieldName1' />
        <Value Type='Text' >value1</Value>
    </Eq>
    <And>
        <Contains>
            <FieldRef Name='fieldName2' />
            <Value Type='Text' >value2</Value>
        </Contains>
        <Contains>
            <FieldRef Name='fieldName3' />
            <Value Type='Text' >value3</Value>
        </Contains>
    </And>
    <And>
        <Eq>
            <FieldRef Name='fieldName4' />
            <Value Type='DateTime' IncludeTimeValue='false'>2019-06-22</Value>
        </Eq>
        <Eq>
            <FieldRef Name='fieldName5' />
            <Value Type='DateTime' IncludeTimeValue='false'>2019-05-06</Value>
        </Eq>
    </And>
</And>

我的查询有什么问题?

标签: c#sharepointcsomcaml

解决方案


对于涉及多个字段的比较,它更像是自下而上的方法,您开始比较 2 个字段,然后比较第 3 个字段的结果,然后比较第 4 个字段的结果,依此类推。所以,你的查询应该是这样的:

      <And>
     <Eq>
        <FieldRef Name='fieldName1' />
        <Value Type='Text'>value1</Value>
     </Eq>
     <And>
        <Contains>
           <FieldRef Name='fieldName2' />
           <Value Type='Text'>value2</Value>
        </Contains>
        <And>
           <Contains>
              <FieldRef Name='fieldName3' />
              <Value Type='Note'>value3</Value>
           </Contains>
           <And>
              <Eq>
                 <FieldRef Name='fieldName4' />
                 <Value Type='Text'>value4</Value>
              </Eq>
              <Eq>
                 <FieldRef Name='fieldName5' />
                 <Value Type='Text'>value5</Value>
              </Eq>
           </And>
        </And>
     </And>
  </And>

推荐阅读