【问题标题】:How to assign Sorted DataView to DataTable with keeping Sorted State using C#?如何使用 C# 将 Sorted DataView 分配给 DataTable 并保持 Sorted State?
【发布时间】:2013-11-12 12:48:45
【问题描述】:

我有一个DataView,上面应用了Sort。我无法将DataViewSorted 状态分配/复制到DataTable

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

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

这很好用。

但是,当我将这个 DataView 分配给 DataTable *失去排序状态*。

DataTable dt = (view.Table);

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

所以,我想在不丢失已排序状态的情况下将已排序的 DataView 分配/复制到 DataTable

【问题讨论】:

  • table 和 dt 是同一张表吗?
  • 不!添加更多请看...!

标签: c# sorting datatable dataview


【解决方案1】:

使用view.ToTable() 代替view.Table。请看下面sn-p

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

DataTable dt = view.ToTable();

【讨论】:

    【解决方案2】:

    您可以直接在 Datatable 本身中获取 dataview 属性。

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

    【讨论】:

      【解决方案3】:

      这是编写单行排序的一种非常有效的方法,它维护父级DataTableDataView 的排序。

      table = new DataView(table, "", "Distance",
                           DataViewRowState.CurrentRows).ToTable()
      

      【讨论】:

        猜你喜欢
        • 2014-06-01
        • 2019-01-15
        • 2021-07-26
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        相关资源
        最近更新 更多