实施OR

时间:2019-12-13 03:01:31

标签: sharepoint caml

在我的SharePoint CAML查询中,当使用一个输入进行筛选时,它是成功的。但是,当我添加<Or>来添加另一个输入时,它失败了。

下面是CAML个查询。错误是由于多输入格式错误造成的吗?


单次输入(通过)

<Where>
    <And>
        <Eq>
            <FieldRef Name="Header1Ref"/><Value Type="Text">H1</Value>
        </Eq>
            <Neq><FieldRef Name ="ContentType"/><Value Type="Text">"Document"</Value></Neq>
    </And>
</Where>

多次输入(失败)

<Where>
    <And>
        <Eq>
            <Or>
                <FieldRef Name="Header1Ref"/><Value Type="Text">H1</Value>
                <FieldRef Name="Header1Ref"/><Value Type="Text">H2</Value>
            </Or>
        </Eq>
            <Neq><FieldRef Name ="ContentType"/><Value Type="Text">"Document"</Value></Neq>
    </And>
</Where>

错误:

  

一个或多个字段类型未正确安装。前往清单   设置页面删除这些字段。在   Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)   在   Microsoft.SharePoint.Library.SPRequest.GetListItemDataWithCallback2(IListItemSqlClient   pSqlClient,字符串bstrUrl,字符串bstrListName,字符串bstrViewName,   字符串bstrViewXml,SAFEARRAYFLAGS fSafeArrayFlags,   ISP2DSafeArrayWriter pSACallback,ISPDataCallback pPagingCallback,   ISPDataCallback pPagingPrevCallback,ISPDataCallback   pFilterLinkCallback,ISPDataCallback pSchemaCallback,ISPDataCallback   pRowCountCallback,Boolean&pbMaximalView)   Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData()在   Microsoft.SharePoint.SPListItemCollection.get_Count()

1 个答案:

答案 0 :(得分:1)

您的CAML查询存在问题。应该是

<Where>
    <And>
           <Or>
               <Eq> <FieldRef Name="Header1Ref"/><Value Type="Text">H1</Value> </Eq>
               <Eq><FieldRef Name="Header1Ref"/><Value Type="Text">H2</Value> </Eq>
            </Or>
            <Neq><FieldRef Name ="ContentType"/><Value Type="Text">"Document"</Value></Neq>
    </And>
</Where>