将数据行数组中的数据行添加到数据表的顶部
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);
}
数组是通过对数据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);
}