首页 新闻 会员 周边 捐助

DataTable数据排序。

0
[已解决问题] 解决于 2017-05-17 15:02
One Two
1 1
2 1
3 1
3 2
3 3
4 1
4 2
5 1

有没有一种这样的排序,首先先要满足One字段的排序,从低到高,再满足Two在One的基础上从低到高的排序,我经理提示我用DataView,可是我不会。

你猜丶的主页 你猜丶 | 初学一级 | 园豆:135
提问于:2017-05-16 14:05
< >
分享
最佳答案
0
 DataView dataView = dt.DefaultView;
            dataView.Sort = "One ASC,TwoASC";
            dtContent = dataView.ToTable();  

最后还是用DataView解决了。

你猜丶 | 初学一级 |园豆:135 | 2017-05-17 09:07
其他回答(2)
0

Linq就搞定,想怎么搞就怎么搞

花飘水流兮 | 园豆:13595 (专家六级) | 2017-05-16 14:06

我就是不太懂这个代码,没接触过

var selectedRows = from r in Dt.AsEnumerable() orderby r.Field<DateTime>("One") descending select r;

 我查到这样一串代码,但是我不是很能看懂

支持(0) 反对(0) 你猜丶 | 园豆:135 (初学一级) | 2017-05-16 14:08
0

建议是弄成实体类.别用datatable了.这种东西没人用的.

实体类用linq的话就是dr.orderby(a=>a.one).thenby(a=>a.two);

多简单的事情.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-16 14:14

我不太懂怎么弄成实体类耶,我看到这整个系统中都是用datatable然后前台遍历这种方式。

支持(0) 反对(0) 你猜丶 | 园豆:135 (初学一级) | 2017-05-16 14:16

@你猜丶: 这种做法真的问题很大的.

你就定义一个实体类.表里有哪些字段.就是写哪些属性在实体类.

然后遍历datatable.把数据放一个实体集合里.

前端就遍历这个实体集合.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-16 14:19

@你猜丶: 比如你这个需求就是一个 public class item{public int one;public int two}

dt.tolist<item>().orderby(a=>a.one).thenby(a=>a.two);

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-16 14:20

@吴瑞祥: 等等,这个实体类不会是model吧?

支持(0) 反对(0) 你猜丶 | 园豆:135 (初学一级) | 2017-05-16 14:20

@你猜丶: 是的.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-16 14:40

@吴瑞祥: 额,可是我这个系统的架构本身是不使用model层的,o(╯□╰)o

支持(0) 反对(0) 你猜丶 | 园豆:135 (初学一级) | 2017-05-16 14:42

@你猜丶: 你们是外包公司吗

这个model不是数据库实体.是业务实体.不然就会像你现在这样一个datatable到处传.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-16 15:00

@吴瑞祥: 不是,数据多的时候会定义实体类,不多的时候就不会

支持(0) 反对(0) 你猜丶 | 园豆:135 (初学一级) | 2017-05-16 15:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册