将数据行数组中的数据行添加到数据表的顶部

adding datarows from array of datarows to top of datatable

数组是通过对数据table的linq查询获得的。当我尝试将它添加到另一个数据 table 时,它给出了该行属于另一个 table.

的异常

需要将行添加到 table 的顶部而不是底部

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);
}

您不能将 DataRow 添加到另一个 DataTable,它有一个对 DataTable 的引用,如果您更改 table.[=17,它会抛出异常=]

您可以使用 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);
}