[英]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.