数据表合并和排序

本文关键字:排序 合并 数据表 | 更新日期: 2023-09-27 17:55:27

我有两个具有相同列的数据表。我想将其中一个数据表附加到另一个数据表的末尾,然后按日期对它们进行排序。最好的方法是什么?

当我尝试合并和排序它们时,如下所示:

private DataTable mergeAndSortTables(DataTable manualTable, DataTable gpsTable)
{
    manualTable.Merge(gpsTable);
    manualTable.DefaultView.Sort = "Date DESC";
    return manualTable.DefaultView.ToTable();
}

我最终仍然以无序的行结束。我做错了什么?

编辑:我也得到了与此代码完全相同的结果:

private DataTable mergeAndSortTables(DataTable manualTable, DataTable gpsTable)
{
    manualTable.Merge(gpsTable);
    DataView view = manualTable.DefaultView;
    view.Sort = "Date DESC";
    return view.ToTable();
}

数据表合并和排序

不要修改默认视图,而是基于当前表创建一个新视图。 这应该可以解决您的问题。

您必须分配数据视图,然后对其进行处理。

默认视图视图 = 手动表.默认视图; 视图。排序 = "日期描述"; 返回视图。ToTable();
我认为

问题可能是日期是一个关键字 - 尝试...


    manualTable.DefaultView.Sort = "[Date] DESC";

您可以使用DataTable.Select()方法进行排序,尽管它会返回 DataRow[]。例如,合并后,您可以执行DataRow[] rows = manualTable.Select("", columnName sortOrder). 您可以随时将此 DataRow[] 转换为另一个表并返回它。