测试通过
Imports System.Data
Imports System.Linq
Module Module1
Sub Main()
Dim dt1 As New DataTable
dt1.Columns.Add("id", Type.GetType("System.String")).AllowDBNull = True
dt1.Columns.Add("eq", Type.GetType("System.String", False))
Dim j = 8
For i = 1 To 4
dt1.Rows.Add(New String() {i, "eq" & j})
j -= 1
Next
For i = 1 To 4
dt1.Rows.Add(New String() {Nothing, "eq" & j})
j -= 1
Next
Console.WriteLine("...读取原始:")
For Each dr In dt1.Rows
Console.WriteLine("id:" & dr(0).ToString & "-eq:" & dr(1).ToString)
Next
Console.WriteLine("...读取排序:")
Dim qry1 = From n In dt1
Order By n!eq
Dim qryEQ = From n In qry1
Where Not IsDBNull(n!id)
Dim qryNullId = From n In qry1
Where IsDBNull(n!id)
'这儿可以根据需要再排序
Dim qryRlt = qryEQ.Union(qryNullId)
'n.Field(Of String)("eq") Ascending
For Each dr In qryRlt
Console.WriteLine("id:" & dr(0).ToString & "-eq:" & dr(1).ToString)
Next
Console.Read()
End Sub
另外:SQL语句两个字段同时order by 排序,
http://www.baidu.com/s?wd=order+by+%E5%A4%9A%E4%B8%AA%E5%AD%97%E6%AE%B5&ie=UTF-8&oe=UTF-8&abar=2&tn=54066025_adr&ch=33
看是否有用,一般我也只是用一个字段排序.