复制到数据表
本文关键字:数据表 复制 | 更新日期: 2023-09-27 18:26:24
我加入数据表来创建一个新的数据表
代码:
var row = from r0w1 in dt_vi.AsEnumerable()
join r0w2 in dt_w.AsEnumerable()
on r0w1.Field<int>("ID") equals r0w2.Field<int>("iD")
join r0w3 in dt_re.AsEnumerable()
on r0w1.Field<int?>("ID") equals r0w3.Field<int?>("id")
join r0w4 in dt_def.AsEnumerable()
on r0w1.Field<int?>("ID") equals r0w4.Field<int?>("id") into ps
from r0w4 in ps.DefaultIfEmpty()
select r0w1.ItemArray.Concat(r0w2.ItemArray.Concat(r0w3.ItemArray.Concat(r0w4 != null ? r0w4.ItemArray : new object[] { }))).ToArray();
foreach (object[] values in row)
dt.Rows.Add(values);
在上述代码中,
foreach (object[] values in row)
dt.Rows.Add(values);
对于数十万行来说是缓慢的。我想把row
的数据放入dt
我想知道是否有任何方法可以让我不必使用循环来创建新的数据表?
正如@Thanos Markow所提到的,您需要使用dataTable.Merge(the second data table)
。
重要提示:合并操作只考虑原始表和要合并的表。子表不受影响或不包括在内。如果一个表有一个或多个子表,定义为关系的一部分,则必须单独合并每个子表。