我正在从 SharePoint 列表中检索一些行。项目计数返回 2,但当我尝试使用 GetDataTable 方法获取数据表中的项目时,它返回 null。
这是我的代码:
public DataTable GetInbox()
{
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists.TryGetList("PromotionRecommendationList");
var q = new SPQuery()
{ //recommend by current user and status is change request means request is visible to requestor in editable mode
Query = @"<Where> <And>
<Eq>
<FieldRef Name='RecommendBy_EmpCode' />
<Value Type='Text'>"+obj_vemployee.GetEmployeeCode(GetLoggingName(CurrentUser.LoginName))+"</Value></Eq><Eq><FieldRef Name='Status' /><Value Type='Text'>"+Status.ChangeRquest+ "</Value></Eq></And><Or><Eq><FieldRef Name='assign_to_EmpCode' /><Value Type='Text'>" + obj_vemployee.GetEmployeeCode(GetLoggingName(CurrentUser.LoginName)) + "</Value></Eq></Or></Where>"
};
q.ViewFields = @"
<FieldRef Name='Request_No' />
<FieldRef Name='RecommendBy_EmpCode' />
<FieldRef Name='RecommendTo_EmpCode' />
<FieldRef Name='STATUS' />
<FieldRef Name='RequestStatus' />
";
var r = list.GetItems(q);
lblTEst.Text = list.Items.Count.ToString();//this is returning 2
DataTable dtResults = r.GetDataTable();//returning null
return dtResults;
}
}
return null;
}
列表。Items.Count 返回列表中所有项目的数量,它不计算查询返回的项目,您需要计算 r 变量中的项目(SPListItemCollection(
这应该是由于您的 caml 查询未正确构建,因此没有为变量r
返回任何数据。 您的or
仅包含一个条件,如果您不熟悉 SharePoint CAML 架构,则可以使用 caml 设计器来构建查询