首页 > 解决方案 > 从其他较小的 DataTable 填充 DataTable

问题描述

我有一个async操作会出去并用一些参数填充一个DataTable,它会重复几次,所以每次它出去都会得到一个DataTable。

我想将这些较小的 DataTable 中的每一个保存到一个更大的 DataTable 中。我正在尝试这个DataTable table代表较小数据表和dtMain较大数据表的表在哪里。我在一个循环和每次迭代中都有这个,table应该将其复制RowsdtMain

    DataTable table = await SomeOperationWhichReturnsADataTable();
    DataTable dtMain;

    if (dtMain.Rows.Count == 0) // Copy over Rows and Columns since dtMain is empty
    {
        dtMain = table.Copy();
    }
    else
    {
        foreach (DataRow dataRow in table.Rows) // Just copy the Rows
        {
            dtMain.Rows.Add(dataRow.ItemArray);
        }
    }
}

除了为每个表复制行之外,还有更好的方法吗?

标签: c#asynchronousdatatable

解决方案


您是否尝试过使用 DataTable Merge方法?我相信您可以将代码更改为以下内容:

DataTable table = await SomeOperationWhichReturnsADataTable();
DataTable dtMain;
/*Not sure about this validation as no information about dsActv
 was provided so i will leave it as is*/
if (dsActv.Rows.Count == 0) // Copy over Rows and Columns
{
    dtMain= table.Copy();
}
else
{
    dtMain.Merge(table);
}

推荐阅读