关于Datatable排序的问题,对于表中空行如何处理?
我的Datatable中有N行数据,其中有些行是空行,我想对其实行排序,代码如下:Dim dv As DataView = dt.DefaultView
dv.Sort = "0 asc "
dt = dv.ToTable
Me.DataGridView1.Refresh()
其中0列的数据类型为:Double型,对其实行升序,结果排序后空行都跑到了最前面,怎么样才能使空行在后面呢? --------------------编程问答-------------------- 不懂,up --------------------编程问答-------------------- 你应该是想说该列有空值,即数据格式中有NULL值,试试以下方法.
ISNULL(列,0) DESC或ASC --------------------编程问答--------------------
你说的对!表中有好多的空值数据行,能说明一下你的方法是什么意思?怎么用? --------------------编程问答-------------------- case when A is null then 9999 else A
再排序
--------------------编程问答-------------------- 感谢上面几位的回复!受到Wuyq11(人生如梦)的启发,我用了一个自认为是个笨办法的办法:
[code=VB.NET]For i As Integer = 0 To dt.Rows.Count - 1
If dt.Rows(i)(0) Is DBNull.Value Then
dt.Rows(i)(0) = 9999999
End If
Next
Dim dv As DataView = dt.DefaultView
dv.Sort = "0 asc "
dt = dv.ToTable
For i As Integer = 0 To dt.Rows.Count - 1
If dt.Rows(i)(0) = 9999999 Then
dt.Rows(i)(0) = DBNull.Value
End If
Next
Me.DataGridView1.Refresh()code] --------------------编程问答--------------------
dv.Sort = "ISNULL(列,0) DESC"
--------------------编程问答-------------------- ding --------------------编程问答-------------------- ding --------------------编程问答-------------------- 还顶,我的方法不行?行就结贴给分吧. --------------------编程问答-------------------- 自定义SortComparer --------------------编程问答-------------------- 学习,帮顶! --------------------编程问答-------------------- 学习。学习。 --------------------编程问答-------------------- xue xi !!!
补充:.NET技术 , VB.NET