2015-06-25 57 views
0

該數組通過數據表上的linq查詢獲得。當我嘗試將其添加到另一個數據表時,它會提供該行屬於另一個表的異常。將數據行數組中的數據行添加到數據表頂部

需要將行添加到表的頂部不在底部

DataRow[] recovery_rows = Sub_DataTable.Select("ProductId = " + last_product_id.ToString() + ""); //Sub_DataTable is a datatable 
for (int rev_row = 0; rev_row < recovery_rows.Count(); rev_row++) 
{ 
    DataRow r_new = recovery_rows[rev_row]; 
    // r_new = recovery_rows[rev_row]; 
    dt_sub.Rows.InsertAt(recovery_rows[rev_row], 0); 
} 
+0

什麼是確切的異常和引發它的行? – dotctor

+0

當然你可以谷歌這一個......這裏也許? http://stackoverflow.com/questions/722052/this-row-already-belongs-to-another-table-error-when-trying-to-add-rows –

+1

不能使用@邁克爾B因爲需要添加行總是在頂部 –

回答

1

您不能添加DataRow到另一個DataTable,它有一個參考,以它的DataTable並拋出一個異常,如果你改變了表。

您可以使用DataTable.ImportRow來導入該行並將其添加到DataRowCollection的末尾。所以下一個任務是將其移動到第一個位置:

for (int rev_row = 0; rev_row < recovery_rows.Length; rev_row++) 
{ 
    DataRow r_new = recovery_rows[rev_row]; 
    dt_sub.ImportRow(r_new); 
    dt_sub.Rows.RemoveAt(dt_sub.Rows.Count - 1); 
    dt_sub.Rows.InsertAt(r_new, 0); 
} 
+1

嘿感謝它的工作 –