这是我第一个堆栈溢出的消息。我目前正在为一家公司编写软件,并且在行上有数据表排序问题。假设我有一个模型如下
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中是否有一个机制来帮助这个功能,或者可以通过哪些方法来解决这个问题最好的代码。
使用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