将数据行从数据行数组添加到数据表顶部

时间:2015-06-25 09:55:14

标签: c# .net linq datatable

该数组是通过对数据表的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);
}

1 个答案:

答案 0 :(得分: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);
}