Asp.net 如何处理';源不包含数据行';错误

Asp.net 如何处理';源不包含数据行';错误,asp.net,Asp.net,请查找下面的代码。如果该行为空,则会出现错误“源代码不包含数据行”。如何处理此问题 if (dtTemSec.Rows.Count > 0) { grdStepDetails.DataSource = dtTemSec.AsEnumerable() .Where(x => x.Field<string>("

请查找下面的代码。如果该行为空,则会出现错误“源代码不包含数据行”。如何处理此问题

if (dtTemSec.Rows.Count > 0)
                    {
                        grdStepDetails.DataSource = dtTemSec.AsEnumerable()
                                        .Where(x => x.Field<string>("Status") != "D" && x.Field<string>("ID") == "ST" && x.Field<int>("Folder") == folder)
                                        .CopyToDataTable();
                        grdStepDetails.DataBind();
                        ClientScript.RegisterStartupScript(GetType(), "Val", "ShowStepPopup();", true);
                    }
                    else
                    {
                        grdStepDetails.DataSource = null;
                        grdStepDetails.DataBind();
                        ClientScript.RegisterStartupScript(GetType(), "Val", "ShowStepPopup();", true);
                    }
if(dtTemSec.Rows.Count>0)
{
grdStepDetails.DataSource=dtTemSec.AsEnumerable()
其中(x=>x.Field(“状态”)!=“D”和&x.Field(“ID”)==“ST”和&x.Field(“文件夹”)==文件夹)
.CopyToDataTable();
grdStepDetails.DataBind();
RegisterStartupScript(GetType(),“Val”,“ShowStepPopup();”,true);
}
其他的
{
grdStepDetails.DataSource=null;
grdStepDetails.DataBind();
RegisterStartupScript(GetType(),“Val”,“ShowStepPopup();”,true);
}

使用如下的If条件

if(dtTemSec != null)
{
   if(dtTemSec.Rows.Count > 0)
    {
    }
}
编辑:

如果是这种情况,则将条件置于过滤器之后

if(dtTemSec != null)
    {
       if(dtTemSec.Rows.Count > 0)
        {
           DataTable Temp = new DataTable();
           Temp = dtTemSec.AsEnumerable()
                                        .Where(x => x.Field<string>("Status") != "D" && x.Field<string>("ID") == "ST" && x.Field<int>("Folder") == folder)
                                        .CopyToDataTable();
           if(Temp != null)
           {
           if(Temp.Rows.Count > 0)
           {
              grdStepDetails.DataSource=Temp;
              grdStepDetails.DataBind();
              ClientScript.RegisterStartupScript(GetType(), "Val", "ShowStepPopup();", true);
           }
           }
        }
    }
if(dtTemSec!=null)
{
如果(dtTemSec.Rows.Count>0)
{
DataTable Temp=新DataTable();
Temp=dtTemSec.AsEnumerable()
其中(x=>x.Field(“状态”)!=“D”和&x.Field(“ID”)==“ST”和&x.Field(“文件夹”)==文件夹)
.CopyToDataTable();
如果(温度!=null)
{
如果(临时行数>0)
{
grdStepDetails.DataSource=Temp;
grdStepDetails.DataBind();
RegisterStartupScript(GetType(),“Val”,“ShowStepPopup();”,true);
}
}
}
}
像这样使用:-

 if (dtTemSec.Rows.Count > 0)
                    {
                        var table = dtTemSec;
                        var rows = table.AsEnumerable().Where(x => x.Field<string>("Status") != "D" && x.Field<string>("ID") == "ST" && x.Field<int>("Folder") == folder);
                        var dt = rows.Any() ? rows.CopyToDataTable() : table.Clone();
                        grdStepDetails.DataSource = dt;
                        grdStepDetails.DataBind();
                        ClientScript.RegisterStartupScript(GetType(), "Val", "ShowStepPopup();", true);
                    }
                    else
                    {
                        grdStepDetails.DataSource = null;
                        grdStepDetails.DataBind();
                        ClientScript.RegisterStartupScript(GetType(), "Val", "ShowStepPopup();", true);
                    }
if(dtTemSec.Rows.Count>0)
{
var表=dtTemSec;
var rows=table.AsEnumerable()。其中(x=>x.Field(“状态”)!=“D”和&x.Field(“ID”)==“ST”和&x.Field(“文件夹”)==文件夹);
var dt=rows.Any()?rows.CopyToDataTable():table.Clone();
grdStepDetails.DataSource=dt;
grdStepDetails.DataBind();
RegisterStartupScript(GetType(),“Val”,“ShowStepPopup();”,true);
}
其他的
{
grdStepDetails.DataSource=null;
grdStepDetails.DataBind();
RegisterStartupScript(GetType(),“Val”,“ShowStepPopup();”,true);
}

@sai..感谢您的回复。“dtTemSec”始终包含值。根据这些值,我过滤datas.grdStepDetails.DataSource=dtTemSec.AsEnumerable()。其中(x=>x.Field(“Status”)!=“D”和&x.Field(“ID”)==“ST”和&x.Field(“Folder”)==文件夹)。CopyToDataTable(); 如果结果dosnt包含行,它将通过错误