【问题标题】:adding datarows from array of datarows to top of datatable将数据行从数据行数组添加到数据表顶部
【发布时间】:2015-06-25 09:55:14
【问题描述】:

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

【问题讨论】:

  • 确切的异常是什么以及引发它的行?
  • 当然你可以用谷歌搜索这个...也许在这里? stackoverflow.com/questions/722052/…
  • 不能使用 @Michael B 因为需要始终在顶部添加行
  • dt_sub 是一个数据表,我想将从选择查询中获得的行添加到数据表 dt_sub 的顶部。选择查询用于数据表 Sub_DataTable

标签: c# .net linq datatable


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多