1
我正在编写一个使用LINQ连接两个DataTable的函数,问题是我不提前知道这两个表包含的列,除了列加入。在加入两个DataTable时选择LINQ查询中的所有可用字段
string id = "ID";
DataTable tableJoined = new DataTable();
tableJoined.Columns.Add(id, typeof(string));
tableJoined.Columns.Add("NAME", typeof(string));
tableJoined.Columns.Add("STOCK", typeof(string));
var result = from dataRows1 in table1.AsEnumerable()
join dataRows2 in table2.AsEnumerable()
on dataRows1.Field<string>(id) equals dataRows2.Field<string>(id)
select tableJoined.LoadDataRow(new object[]
{
dataRows1.Field<string>(id),
dataRows1.Field<string>(1),
dataRows2.Field<string>(1)
}, false);
result.CopyToDataTable();
我可以建立在旅途中,以适应的tableJoined
最终结构的tableJoined
DataTable,并添加列,但我要如何更新LINQ查询来填充tableJoined
与所有可用字段?现在它只知道表中包含的列数,只填充“ID”,“NAME”和“STOCK”。谢谢。
非常感谢! – Karl