问题描述
在 Visual Studio 中使用带有 VB 的 Windows 表单我有下一个问题
当我初始化对象 DataSet 时,表之间的排序不同
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)