如何使用C#保持排序状态,将Sorted DataView分配给DataTable?

时间:2013-11-12 12:48:45

标签: c# sorting datatable dataview

我有DataView申请了Sort。我无法将Sorted DataView状态分配/复制到DataTable

使用列'距离'对DataView进行排序:

DataTable table=GetData();
DataView view = table.DefaultView;
view.Sort = "Distance";

这很好。

但是,当我将此DataView分配给DataTable * 放弃已退出的状态 *。

DataTable dt = (view.Table);

这会丢失DataView的排序状态 任何的想法? 如果出现问题,请更正我的代码。

因此,我想将已排序的DataView分配/复制到DataTable而不会丢失已排序状态。

3 个答案:

答案 0 :(得分:4)

使用view.ToTable()代替view.Table。请参阅下面的代码段

DataTable table=GetData();
DataView view = table.DefaultView;
view.Sort = "Distance";

DataTable dt = view.ToTable();

答案 1 :(得分:0)

您可以直接在Datatable本身获取数据视图属性。

DataTable table=GetData();
table.DefaultView.Sort="Distance";
table=table.DefaultView.ToTable();

答案 2 :(得分:0)

这是编写单行排序的一种非常有效的方法,可以维护父{{1+1}}DataView的排序。

DataTable