C# 源不包含使用Linq的数据行

C# 源不包含使用Linq的数据行,c#,asp.net,linq,C#,Asp.net,Linq,我有多个数据表和过滤器,第一个数据表和第二个数据表,第三个数据表使用第一个数据表电子邮件相同 下面是我的C#代码: public void getexport() { DateTime Fromdate=DateTime.ParseExact(txt_Fromdate.Text,“MM/dd/yyyy”,CultureInfo.InvariantCulture); DateTime Todate=DateTime.ParseExact(txt_Todate.Text,“MM/dd/yyyy”,C

我有多个数据表和过滤器,第一个数据表和第二个数据表,第三个数据表使用第一个数据表电子邮件相同

下面是我的C#代码:

public void getexport()
{
DateTime Fromdate=DateTime.ParseExact(txt_Fromdate.Text,“MM/dd/yyyy”,CultureInfo.InvariantCulture);
DateTime Todate=DateTime.ParseExact(txt_Todate.Text,“MM/dd/yyyy”,CultureInfo.InvariantCulture);
bo.Dateused=Fromdate;
bo.Dateused2=Todate;
var ds=新数据集();
var dt=新数据表(“登记详情”);
数据表dt1=新数据表(“教育详情”);
数据表dt2=新数据表(“就业详情”);
dt=bl.Get_Registrationdetailsbydate(bo);
gv_Regdetails.DataSource=dt;
gv_Regdetails.DataBind();
dt1=bl.Get_Educationdetailsbydate(bo);
dt2=bl.Get_Employmentdetailsbydate(bo);
会话[“Fromdate”]=txt\u Fromdate.Text;
会话[“Todate”]=txt\u Todate.Text;
如果(gv_Regdetails.Rows.Count>0)
{
DataTable Filtereducation=dt1.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim()).CopyToDataTable();
DataTableFilteredEmployee=dt2.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim()).CopyToDataTable();
dt.TableName=“注册详细信息”;
filtereducation.TableName=“教育详情”;
filteredEmployee.TableName=“员工详细信息”;
ds.Tables.Add(dt);
ds.Tables.Add(过滤器扣除);
ds.Tables.Add(filteredEmployee);
ToExcel(ds,“DangoteUsers.xls”,Page.Response);
btnExport.Visible=true;
}
}
当没有数据行时,我在Filtereducation和filteredEmployee数据表中遇到错误

DataTable filteredEducation = dt1.AsEnumerable()
  .Where(x => dt.AsEnumerable()
 .Any(z => z.Field<string>("Email").Trim() == x.Field<string>("Email").Trim())).CopyToDataTable();

DataTable filteredEmployee = dt2.AsEnumerable()
   .Where(x => dt.AsEnumerable()
  .Any(z => z.Field<string>("Email").Trim() == x.Field<string>("Email").Trim())).CopyToDataTable();
DataTableFiltereducation=dt1.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim()).CopyToDataTable();
DataTableFilteredEmployee=dt2.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim()).CopyToDataTable();

问题出现在这里,因为您试图在没有任何记录的情况下复制到数据表。因此,解决方案将是

var firstDataTable = dt1.AsEnumerable()
  .Where(x => dt.AsEnumerable()
 .Any(z => z.Field<string>("Email").Trim() == x.Field<string>("Email").Trim()));

DataTable filteredEducation  = new DataTable();

if(firstDataTable.Any())
{
    filteredEducation  = firstDataTable.CopyToDataTable();
}
var firstDataTable=dt1.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim());
DataTable Filtereducation=新DataTable();
if(firstDataTable.Any())
{
Filtereducation=firstDataTable.CopyToDataTable();
}

问题出现在这里,因为您试图在没有任何记录的情况下复制到数据表。因此,解决方案将是

var firstDataTable = dt1.AsEnumerable()
  .Where(x => dt.AsEnumerable()
 .Any(z => z.Field<string>("Email").Trim() == x.Field<string>("Email").Trim()));

DataTable filteredEducation  = new DataTable();

if(firstDataTable.Any())
{
    filteredEducation  = firstDataTable.CopyToDataTable();
}
var firstDataTable=dt1.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim());
DataTable Filtereducation=新DataTable();
if(firstDataTable.Any())
{
Filtereducation=firstDataTable.CopyToDataTable();
}
var row=dt1.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim()).ToList()//在此查询末尾添加ToList()。
DataTable Filtereducation=row.Any()?row.CopyToDataTable():filtereduction.Clone();
var row=dt1.AsEnumerable()
.Where(x=>dt.AsEnumerable()
.Any(z=>z.Field(“Email”).Trim()==x.Field(“Email”).Trim()).ToList()//在此查询末尾添加ToList()。
DataTable Filtereducation=row.Any()?row.CopyToDataTable():filtereduction.Clone();

Ya谢谢你,你能再告诉我一个想法吗。。我正在导出单个XL文件中的三个工作表,但在第二个数据表(教育详细信息表)和第三个数据表(就业详细信息表)中缺少一些用户数据。但是Filtereducation和filteredEmployee表中缺少一些数据,为什么?我的下一个问题是@Govinda RajbharI对您的悬赏问题没有具体的答案,但可能存在区分大小写的问题,因为注释和复制数据表中也提到了上述方法,请尝试在您的表中解决区分大小写的问题,然后尝试可能会有所帮助。谢谢您能告诉我更多想法吗。。我正在导出单个XL文件中的三个工作表,但在第二个数据表(教育详细信息表)和第三个数据表(就业详细信息表)中缺少一些用户数据。但是Filtereducation和filteredEmployee表中缺少一些数据,为什么?我的下一个问题是@Govinda RajbharI对您的悬赏问题没有具体的答案,但可能存在区分大小写的问题,因为注释和复制数据表中也提到了上述方法,请尝试在您的表中解决区分大小写的问题,然后尝试可能会有所帮助。谢谢您能告诉我更多想法吗。。我正在导出单个XL文件中的三个工作表,但在第二个数据表(教育详细信息表)和第三个数据表(就业详细信息表)中缺少一些用户数据。但是Filtereducation和filteredEmployee表中缺少一些数据,为什么?我的下一个问题是@我的出生名谢谢你能再告诉我一个想法吗。。我正在导出单个XL文件中的三个工作表,但在第二个数据表(教育详细信息表)和第三个数据表(就业详细信息表)中缺少一些用户数据。但是Filtereducation和filteredEmployee表中缺少一些数据,为什么?我的下一个问题是@我的名字
var row = dt1.AsEnumerable()
  .Where(x => dt.AsEnumerable()
 .Any(z => z.Field<string>("Email").Trim() == x.Field<string>("Email").Trim())).ToList();//Add ToList() at the end of this query.

DataTable filteredEducation  = row.Any() ? row.CopyToDataTable() : filteredEducation.Clone();