繁体   English   中英

如何将行从 DataTable 复制到另一个 DataTable 而不删除现有行?

[英]How to copy rows from a DataTable to another DataTable WITHOUT deleting existing rows?

如何将行从一个 DataTable 复制到另一个? 使用DataTable.Copy()不是一个选项,因为这会创建一个新的 DataTable 并删除任何现有的 DataRow。 我想要做的是将List<DataTable>行添加到另一个表中。 是否有一些方法可以做到这一点? 还是遍历所有表和行并调用DataTable.ImportRow()我唯一的选择?

[更新] 好的,这是完整的场景。 我有一个包含 200 万条记录的数据表。 加载它会抛出System.OutOfMemoryException 所以,我决定我需要分页/批量加载它。 我正在使用DataAdapter.FillSchema()创建目标表,目的是仅加载列。 之后,我使用DataAdapter.Fill() (另一个数据表)获取“完整记录”,然后将其拆分为List<DataTable> 使用DataTable.Merge ,将引发此异常:“无法启用约束。一行或多行包含违反非空、唯一或外键约束的值。”

正如迈克尔所说,我尝试使用以下代码进行合并,并且它对我有用。

DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("Address");

table.Rows.Add("Shan", "ADC Street");

DataTable table2 = new DataTable();
table2.Columns.Add("Name");
table2.Columns.Add("Address");
table2.Rows.Add("Raj", "EFG Street");

table2.Merge(table,true);

Console.WriteLine(table2.Rows.Count);      //2
Console.WriteLine(table2.Rows[0]["Name"]); //Raj
Console.WriteLine(table2.Rows[1]["Name"]); //Shan

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM