在 DataSet Objet 上正确排序数据

问题描述

在 Visual Studio 中使用带有 VB 的 Windows 表单我有一个问题

当我初始化对象 DataSet 时,表之间的排序不同

Tables

我有一个代码

oda = New OleDbDataAdapter("Select *From AccionesDeCorreccion",cadena)
ods.Tables.Add("AccionesDeCorreccion")
oda.Fill(ods.Tables("AccionesDeCorreccion"))

我在下一行尝试使用 sort 方法

ods.Tables("AccionesDeCorreccion").defaultview.sort = "ID_ACCIOnes_CORRECCION ASC"

但我的 DataSet 对象中的表没有改变。

如何以升序对我的 DataSet 上的表进行排序,以便在 Access 中拥有与我的数据库相同的顺序?

解决方法

试试:

    Dim dv As DataView = ds.Tables("AccionesDeCorreccion").DefaultView
    dv.Sort = "ID_ACCIONES_CORRECCION"
    Dim sortedDT As DataTable = dv.ToTable()
    sortedDT.TableName = "AccionesDeCorreccion"
    ds.Tables.Remove("AccionesDeCorreccion")
    ds.Tables.Add(sortedDT)

或者使用LINQ来做:

    Dim sortedDT As DataTable = ds.Tables("AccionesDeCorreccion").AsEnumerable().
        OrderBy(Function(x) x.Field(Of Integer)("ID_ACCIONES_CORRECCION")).
        CopyToDataTable()
    sortedDT.TableName = "AccionesDeCorreccion"
    ds.Tables.Remove("AccionesDeCorreccion")
    ds.Tables.Add(sortedDT)