我不知道自己做错了什么。我曾经在几个论坛上试图弄清楚如何在visual basic中对表进行排序。 我对数据视图感兴趣,但注意接缝工作。
我有一个用户可以进行新插入的logg。它有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
我做错了什么?
答案 0 :(得分:0)
在您的代码中,您使用DataView来检索Table,然后使用DataRows,但是您可以按照DataTable上的顺序提取它们。
您需要按照DataView的顺序循环。
像这样的东西
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数组包含足够的条目来容纳检索到的每一行。它与DataTable中的行数相同