c# - 从其他较小的 DataTable 填充 DataTable
问题描述
我有一个async
操作会出去并用一些参数填充一个DataTable,它会重复几次,所以每次它出去都会得到一个DataTable。
我想将这些较小的 DataTable 中的每一个保存到一个更大的 DataTable 中。我正在尝试这个DataTable table
代表较小数据表和dtMain
较大数据表的表在哪里。我在一个循环和每次迭代中都有这个,table
应该将其复制Rows
到dtMain
:
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);
}
}
}
除了为每个表复制行之外,还有更好的方法吗?
解决方案
您是否尝试过使用 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);
}
推荐阅读
- android - MediaPlayer 在第二次运行时粉碎活动(Kotlin)
- ceph - 无法清除 octopus@centos8 上的 OSD_TOO_MANY_REPAIRS
- docker - 关闭 Docker 时分离卷(用于重新启动)
- java - 我没有从 Cloud Firestore 获取数据
- java - 使用 start.spring.io 创建 REST 项目时遇到问题
- .net - 为什么默认情况下不将 Microsoft.NET.Test.Sdk 添加到使用 .NET Framework 4.7.2 的 MSTest 项目中?
- python - 无法使用 django 和 docker 进行迁移
- reactjs - 使用 Auth0 反应 RBAC
- php - 如何使用 apache2 虚拟主机配置来服务两个不同的应用程序
- angular - Angular 在加载任何路由之前执行服务功能