逻辑AND,OR CAML查询无法在外部列表中工作

时间:2012-03-23 04:57:32

标签: sharepoint sharepoint-2010

我正在使用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查询实现这一点 有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

问题出在代码行

之下
   string queryContext = "<View><Query>" + sDataFilter + "</Query>" + viewFieldsContext + "</View>";

使用以下代码更改此行

  string queryContext = "<View>" + sDataFilter +  viewFieldsContext + "</View>";

问题出在Query标签中。在查询中重复两次 我知道什么时候工作

Thax