我有2个数据表,我已经创建了一个连接。然后我可以将其复制回新的数据表。这很好,没有问题。但是,如果我有一个具有更多列的数据表,例如30,具有各种数据类型,如何在不指定每个列的情况下将它们全部复制到新数据表,即类似于SQL查询? 感谢。
var results = from table1 in dt.AsEnumerable()
join table2 in names.AsEnumerable()
on table1.Field<int>("Id") equals table2.Field<int>("Id")
select new
{
C1 = table1.Field<int>("Id"),
C2 = table1.Field<int>("Col1"),
C3 = table1.Field<int>("Col2"),
C4 = table2.Field<String>("Name")
};
DataTable sout = dt.Clone();
sout.Columns.Add("Name", typeof(string));
foreach (var v in results)
{
sout.Rows.Add(v.C1,v.C2,v.C3,v.C4);
};
答案 0 :(得分:0)
首先为表格设置主键。
dt.PrimaryKey = new[] {dt.Columns["Id"]};
names.PrimaryKey = new[] { names.Columns["Id"] };
然后,如果您不介意dt
更改,您可以将表与代码合并,
dt.Merge(names,false, MissingSchemaAction.AddWithKey);
如果你介意clone
dt并做同样的事情。