Vb.net 在visualbasic中对数据集进行排序

Vb.net 在visualbasic中对数据集进行排序,vb.net,Vb.net,我不知道我做错了什么。我曾在几个论坛上尝试用VisualBasic对表格进行排序。 我有带和不带dataview的treid,但没有接缝 我有一个日志,用户可以做新的插入。它有3列。“日期”、“工具”、“注释”。 当我的VB应用程序加载时,程序从Access数据库读取表,我通过sql语句得到了很好的排序: "select * from Logg ORDER BY Logg.Datum DESC" 在用户更新了表之后,我不想再对它进行排序。我已经做了以下几件事,但什么也没发生。无论我做什么,顺序

我不知道我做错了什么。我曾在几个论坛上尝试用VisualBasic对表格进行排序。 我有带和不带dataview的treid,但没有接缝

我有一个日志,用户可以做新的插入。它有3列。“日期”、“工具”、“注释”。 当我的VB应用程序加载时,程序从Access数据库读取表,我通过sql语句得到了很好的排序:

"select * from Logg ORDER BY Logg.Datum DESC"
在用户更新了表之后,我不想再对它进行排序。我已经做了以下几件事,但什么也没发生。无论我做什么,顺序都一样

DS是我的数据集,dw是我的数据视图,“Datum”是我要排序的列

        DS.Tables("hela").DefaultView.Sort = "Datum DESC"
        dw = DS.Tables("hela").DefaultView
        For i = 0 To antal_poss - 1
            LOGG(i, 0) = dw.Table.Rows(i).Item(3)
            LOGG(i, 1) = dw.Table.Rows(i).Item(1)
            LOGG(i, 2) = dw.Table.Rows(i).Item(4)
        Next i

我做错了什么?

在代码中,您使用DataView检索表,然后检索数据行,但您按照DataTable上的顺序提取它们

您需要按照数据视图的顺序进行循环。
像这样的

   Dim i As Integer = 0
   For Each row As DataRowView in dw
        LOGG(i, 0) = row.Item(3)
        LOGG(i, 1) = row.Item(1)
        LOGG(i, 2) = row.Item(4)
        i += 1
    Next i
当然,这假设您的LOGG数组包含足够的条目来容纳检索到的每一行。它与数据表中的行数相同