我有两个数据表。
数据表1的数据具有列FirstName,LastName,DOB,Gender 数据表2的数据具有CustomerID,FirstName,LastName,DOB,Gender列
我想比较数据表1和2中的名字,姓氏,DOB和性别,如果匹配,则将数据表2中的该行加载到新的数据表中。
下面是我正在使用的,可以与名字进行比较,但是我想添加姓氏,DOB和性别。请您告诉我我该怎么做?
我要这样做,以便如果名字,姓氏,出生日期和性别匹配,然后在数据表2中返回该匹配行。表之间的列长是不同的。
DataTable dtMerged = (from a in dataTable.AsEnumerable()
join b in dt.AsEnumerable()
on a["Forename"].ToString() equals b["FirstName"].ToString()
into g
where g.Count() > 0
select a).CopyToDataTable();
dtMerged.AsDataView();
答案 0 :(得分:1)
尝试一下
DataTable dtMerged = dataTable.AsEnumerable()
.Where(ra => dt.AsEnumerable()
.Any(rb => rb.Field<string>("firstname") == ra.Field<string>("firstname")
&& rb.Field<string>("lastname") == ra.Field<string>("lastname")
&& rb.Field<DateTime>("dob") == ra.Field<DateTime>("dob")
&& rb.Field<string>("gender") == ra.Field<string>("gender")))
.CopyToDataTable();