这是我第一个堆栈溢出的消息。我目前正在为一家公司编写软件,并且在行上有数据表排序问题。假设我有一个模型
Sleep(); //from Win32
std::this_thread::sleep_for();
让我说改变顺序
primary key number Sorted some string
100 1 a string
101 2 another string
102 3 after string
103 4 before string
我需要重新订购数字列。有没有办法自动执行此操作(vb.net中的某些内部机制),因此它给出了。
primary key, number sorted, some string,
100 1 a string
101 2 another string
103 4 before string
102 3 after string
如果我删除其中一个项目,我需要重新排序数字列
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
.net中是否有一个机制可以帮助解决这个问题,或者可以就哪个代码最好地解决这个问题的方向表示感谢。
答案 0 :(得分: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