簡體   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