首页 新闻 会员 周边

datatable排序问题,急急急

0
[已解决问题] 解决于 2012-07-12 17:23

今天在对datatable排序时,发现一个问题,它的排序是使用它的默认视图进行排序的,实际上数据的位置并没发生变化,只是生成了一个视图,那么使用怎样的方法才能使数据的索引发生改变呢,不想使用循环导入的方法,有没有更有说服力的方法,请大侠指点,急!

code先生-null的主页 code先生-null | 菜鸟二级 | 园豆:307
提问于:2012-06-30 15:49
< >
分享
最佳答案
0

一、排序
1 获取DataTable的默认视图
2 对视图设置排序表达式
3 用排序后的视图导出的新DataTable替换就DataTable
(Asc升序可省略,多列排序用","隔开)

一、重生法
dstaset.Tables.Add(dt)
dataset.Tables(0).DefaultView.Sort = "id desc"

二、直接法
dv = New DataView(dt)
dv.Sort = "id desc"
dt = dv.ToTable();

三、間接法
dv = New DataView(ds.Tables[0])
dv.Sort = "id desc"

dt = dv.ToTable();
上面的四种方法中,直接法可以解决,呵呵

code先生-null | 菜鸟二级 |园豆:307 | 2012-06-30 16:17
其他回答(2)
1

你想影响DATATABLE的数据顺序是不可能的,除非你对datatable的rows集合进行removoe和add、insert操作。

作为应用,我很奇怪,你干吗一定要对datatable的数据去排序呢?

除了默认的dataview外,还可以对datatable构建跟多的dataview,有了独立的dataview了,你爱怎么弄就怎么弄了。。

无之无 | 园豆:5095 (大侠五级) | 2012-06-30 16:09
0

一是按一楼说的用DataView,然后排序,另外不知道你的是不是web程序,如果是Web程序可以用JS排序,效率也很高

artwl | 园豆:16736 (专家六级) | 2012-06-30 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册