moh*_*han 12 c# linq asp.net datatable excel
我在单个XL文件中导出三个工作表,但我在第二个DataTable
(工作Education Details
表)和第三个DataTable
(工作Employeement Details
表)中缺少一些用户数据.
该Education Details
表是某些用户不在那里,而是Employeement Details
用户正在显示的表单.用户电子邮件ID是三个数据库表.
DataSe ds = new DataSet();
DataTable dt = new DataTable("Registration Details");
DataTable dt1 = new DataTable("Education Details");
DataTable dt2 = new DataTable("Employeement Details");
dt = bl.Get_Registrationdetailsbydate(bo);
gv_Regdetails.DataSource = dt;
gv_Regdetails.DataBind();
dt1 = bl.Get_Registrationdetailsbydate1(bo);
dt2 = bl.Get_Registrationdetailsbydate2(bo);
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();
dt.TableName = "Registration Details";
filteredEducation.TableName = "Education Details";
filteredEmployee.TableName = "Employeement Details";
ds.Tables.Add(dt);
ds.Tables.Add(filteredEducation);
ds.Tables.Add(filteredEmployee);
ExcelHelper.ToExcel(ds, "DangoteUsers.xls", Page.Response);
Run Code Online (Sandbox Code Playgroud)
我根据第一个DataTable
用户做了结果Email
,然后DataTable
根据第一个DataTable
Email
id 填充第二个详细信息用户.与...相同Employment Details
.第一DataTable
和第二个问题DataTable
.我DataTable
也没有回来.
我参考这个例子
我认为您在 linq 查询中的字符串比较是一个问题..您的电子邮件地址可能有不同的大小写,这可能导致此问题。尝试下面的代码
DataTable filteredEducation = dt1.AsEnumerable()
.Where(x => dt.AsEnumerable()
.Any(z => z.Field<string>("Email").Trim().Equals(x.Field<string>("Email").Trim(),StringComparison.CurrentCultureIgnoreCase)))
.CopyToDataTable();
DataTable filteredEmployee = dt2.AsEnumerable()
.Where(x => dt.AsEnumerable()
.Any(z => z.Field<string>("Email").Trim().Equals(x.Field<string>("Email").Trim(),StringComparison.CurrentCultureIgnoreCase)))
.CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1231 次 |
最近记录: |