是非主键列vb.net的简单行重新排序方法

问题描述 投票:0回答:1

这是我第一个堆栈溢出的消息。我目前正在为一家公司编写软件,并且在行上有数据表排序问题。假设我有一个模型如下

primary key   number Sorted    some string
   100          1                a string
   101          2                another string
   102          3                after string
   103          4                before string

让我说我改变顺序

primary key,   number sorted,    some string,
   100           1               a string
   101           2               another string   
   103           4               before string
   102           3               after string

我需要重新订购数字列。有没有办法自动执行此操作(vb.net中的某些内部机制),因此它给出了。

primary key,   number sorted,    some string,
   100              1             a string
   101              2             another string   
   103              3             before string
   102              4             after string

如果我删除其中一个项目,我需要重新排序数字列

primary key,   number sorted,    some string,
   100              1             a string
   103              3             before string
   102              4             after string

primary key,   number sorted,    some string,
   100               1            a string
   103               2            before string
   102               3            after string

.net中是否有一个机制来帮助这个功能,或者可以通过哪些方法来解决这个问题最好的代码。

vb.net
1个回答
0
投票

使用DataView的Sort方法将其设置为要排序的列。您的初始DataTable未受影响,并且您有一个新的已排序的DataTable。

Dim dt As New DataTable
Dim da As New SqlDataAdapter
Dim strSQL As String = "Select * From Coffees Order By [Name]"
Dim cn As New SqlConnection(My.Settings.CoffeeConnectionString)
Dim cmd As New SqlCommand(strSQL, cn)
da.SelectCommand = cmd
da.Fill(dt)
Dim dv As DataView = dt.DefaultView
dv.Sort = "Roast"
Dim SortedDt As DataTable = dv.ToTable
For Each row As DataRow In SortedDt.Rows
      Debug.Print(row("Name").ToString & "  " & row("Roast").ToString)
Next
© www.soinside.com 2019 - 2024. All rights reserved.