C# Sharepoint-GetDataTable方法返回null

C# Sharepoint-GetDataTable方法返回null,c#,sharepoint,caml,sharepoint-list,C#,Sharepoint,Caml,Sharepoint List,我正在从Sharepoint列表中检索一些行。item count返回2,但当我尝试使用GetDataTable方法获取DataTable中的项时,它返回null 这是我的密码: public DataTable GetInbox() { using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = site.OpenWeb()) {

我正在从Sharepoint列表中检索一些行。item count返回2,但当我尝试使用GetDataTable方法获取DataTable中的项时,它返回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;
}
公共数据表GetInbox() { 使用(SPSite site=newspsite(SPContext.Current.Web.Url)) { 使用(SPWeb=site.OpenWeb()) { SPList list=web.Lists.TryGetList(“促销推荐列表”); var q=新的SPQuery() {//由当前用户推荐,状态为“更改请求”,表示请求者在可编辑模式下可以看到请求 查询=@“ “+obj_veEmployee.GetEmployeeCode(GetLoggingName(CurrentUser.LoginName))+”“+Status.ChangeRquest+”“+obj_veEmployee.GetEmployeeCode(GetLoggingName(CurrentUser.LoginName))+”“” }; q、 视域=@“ "; var r=list.GetItems(q); lblTEst.Text=list.Items.Count.ToString();//返回2 DataTable dtResults=r.GetDataTable();//返回null 返回结果; } } 返回null; }
list.Items.Count返回列表中所有项目的数量,它不计算查询返回的项目,您需要计算r变量(SPListItemCollection)中的项目数。

这应该是因为您的caml查询未正确生成,因此没有为变量
r
返回数据。您的
仅包含一个条件,如果您不熟悉这些条件,可以使用caml designer生成查询