2012-07-05 85 views
0

我必須將行從一個表複製到另一個表。在源表中,我可以在行上設置RowError。 當我這樣做:DataRow.RowError在使用DataTable.Load時未被複制

targetTable.BeginLoadData(); 
targetTable.Load(new DataTableReader(sourceTable)) 
targetTable.EndLoadData(); 

目標表沒有得到複製從源表中的一行行的錯誤。 任何人都可以告訴我該怎麼做才能使它工作? 謝謝。

編輯:我不想丟失目標表中已經存在的數據。我也不想改變參考。

回答

1

試試這個:

targetTable = sourceTable.Copy(); 

創建讀者不會給你在這種情況下,預期的結果,因爲它(讀者)的目標將提取的每一行,而不是從屬屬性的值。

更新:

在這種情況下,你應該:

foreach (DataRow drImport in sourceTable.Rows) { 
    targetTable.ImportRow(drImport); 
} 

對不起,只是發表我見過你對其他的參考觀察前。恐怕你不能把同一行(同一個參考)分配給兩個或更多的表。 See this

+0

也許我不清楚我的問題。我不想丟失目標表中已經存在的數據。我也不想改變參考。 'targetTable'引用內存中的DataTable,它也被我的應用程序中的其他組件引用。 – user1004959 2012-07-09 07:20:42

+0

我指的是'targetTable'的引用,而不是行。 :) – user1004959 2012-07-11 09:51:35