在我的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()
答案 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>