vb.net - 如何对数据表进行排序

标签 vb.net datatable

如何对数据表进行排序?我需要从函数返回一个数据表。我已经为此苦苦挣扎了几个小时,互联网上有一些不同的答案,但似乎没有一个对我有用。

编辑:我想打自己。对您的表执行 DataView.Sort,然后执行 DataView.ToTable() 将排序后的数据放入新数据集...
例子:

Dim view As New DataView(OriginalDataSet) 'Put your original dataset into a dataview
view.Sort = "ColumnName" ' Sort your data view
Dim NewDataSet As DataTable = view.ToTable() ' Put your dataview into a new datatable

示例结束

下面我有一个比较简单的示例表,取自教学网站。一个转折是我试图排序的行中有重复的值。
Module Module1

    Sub Main()
    ' Get a DataTable instance from helper function.
    Dim table As DataTable = GetTable()
    End Sub

    ''' <summary>
    ''' Helper function that creates new DataTable.
    ''' </summary>
    Function GetTable() As DataTable
    ' Create new DataTable instance.
    Dim table As New DataTable
    ' Create four typed columns in the DataTable.
    table.Columns.Add("Dosage", GetType(Integer))
    table.Columns.Add("Drug", GetType(String))
    table.Columns.Add("Patient", GetType(String))
    table.Columns.Add("Date", GetType(DateTime))
    ' Add five rows with those columns filled in the DataTable.
    table.Rows.Add(25, "Indocin", "David", DateTime.Now)
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now)
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now)
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now)
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now)
table.Rows.Add(21, "Aspirin", "Janet", DateTime.Now)
    Return table
    End Function

End Module

我尝试选择一个数组,然后循环遍历该数组并将每一行放入一个新的数据表中,但选择并没有抓取行。例子:

drarray = ds.Select("我想在这里全选", "MySortColumn")

我尝试了各种循环策略,使用内循环等,但似乎无法弄清楚。

我试过 dataTable.DefaultView.Sort = "sortExp"但我不能让它工作。

那么我错过了什么?我认为 DefaultView 和 Select 方法只是在语法上遗漏了一些东西。

那么最好的方法是什么,我错过了什么?

最佳答案

你可以使用这样的东西:

Return table.Select("","Columns to sort on").CopyToDataTable

关于vb.net - 如何对数据表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19505979/

相关文章:

c# - C# 枚举中的空格

vb.net - OracleCommand.BindByName = True 到底是什么意思?

javascript - 在数据表表头添加列名和选择框

使用 ushort 字段作为 SQL Server 存储过程参数的 C# DataTable

c# - 在数据集中添加数据表的列

jquery - 数据表 page.dt 仅由上一个下一个触发

c# - 数据表和 View 状态

vb.net - 在 datagridview vb.NET 中分割单元格。那可能吗?

.net - 修复此生成空字符串的排列生成器函数

.net - Thread.abort永远挂起