当前位置:编程学习 > C#/ASP.NET >>

关于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 --------------------编程问答--------------------
引用 2 楼 xiaolinvfp 的回复:
你应该是想说该列有空值,即数据格式中有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] --------------------编程问答--------------------
引用 3 楼 tiyaoli88 的回复:
引用 2 楼 xiaolinvfp 的回复:

你应该是想说该列有空值,即数据格式中有NULL值,试试以下方法.
ISNULL(列,0) DESC或ASC

你说的对!表中有好多的空值数据行,能说明一下你的方法是什么意思?怎么用?


dv.Sort = "ISNULL(列,0) DESC"
--------------------编程问答-------------------- ding --------------------编程问答-------------------- ding --------------------编程问答-------------------- 还顶,我的方法不行?行就结贴给分吧. --------------------编程问答-------------------- 自定义SortComparer --------------------编程问答-------------------- 学习,帮顶! --------------------编程问答-------------------- 学习。学习。 --------------------编程问答-------------------- xue xi !!!
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,