将数据从数组插入数据表

本文关键字:插入 数据表 数组 数据 | 更新日期: 2023-09-27 18:27:15

我加入数据表来创建一个新的数据表

代码:

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的数据表中。我试过

dt=row.CopyToDataTable();

但这是一个错误。

如何在这里使用CopyToDataTable()函数来防止循环?

将数据从数组插入数据表

如果数据表绑定到任何内容,请关闭通知。:

dt.BeginLoadData(); //  stops notifications on each addition
foreach (object[] values in row)
    dt.Rows.Add(values);
dt.EndLoadData();

并去除.ToArray();部分,防止每行再次出现第二次循环。