我正在使用ClientContext类和CAML查询从sharepoint 2010中的外部列表中检索项目。我已经在CAML查询中使用逻辑AND条件构建了这样的查询
string sDataFilter =<Query><Where><And><Eq><FieldRef Name="Year" /><Value Type="Text">1960</Value></Eq><Contains><FieldRef Name="ChartName" /><Value Type="Text">Chart1</Value></Contains></And></Where></Query>
当我宣布以下代码时
List oList = clientContext.Web.Lists.GetById(new Guid(list));
CamlQuery camlQuery = new CamlQuery();
string queryContext = "<View><Query>" + sDataFilter + "</Query>" + viewFieldsContext + "</View>";
camlQuery.ViewXml = queryContext;
ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem);
clientContext.ExecuteQuery();
我得到空的ListItemCollection.I已与 U2U CAML查询生成器进行交叉验证,数据仅为空。所以在外部列表中,caml查询适用于排序和简单的过滤查询,如Where,EqualTo条件我不能在查询中使用逻辑条件?如果是,我怎么能使用caml查询实现这一点 有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
问题出在代码行
之下 string queryContext = "<View><Query>" + sDataFilter + "</Query>" + viewFieldsContext + "</View>";
使用以下代码更改此行
string queryContext = "<View>" + sDataFilter + viewFieldsContext + "</View>";
问题出在Query标签中。在查询中重复两次 我知道什么时候工作
Thax