数据表合并和排序
本文关键字:排序 合并 数据表 | 更新日期: 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[] 转换为另一个表并返回它。