首页 文章

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

提问于
浏览
-1

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

[更新]好的,这是完整的方案 . 我有一个包含200万条记录的DataTable . 加载它会抛出 System.OutOfMemoryException . 所以,我决定我需要页面/批量加载它 . 我正在使用 DataAdapter.FillSchema() 创建目标表,仅用于加载列 . 之后,我使用 DataAdapter.Fill() (另一个DataTable)获取'full records',然后将其拆分为 List<DataTable> . 使用 DataTable.Merge 时,抛出此异常:"Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints."

1 回答

  • 1

    我尝试合并迈克尔用以下代码说,它为我工作 .

    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
    

相关问题