DataTable按某两列排序

zwc99sx 2015-06-17 10:38:53
DataTable按某两列dr1,dr2排序,先dr1从大到小排,如果有几行dr1相等,再根据dr2从大到小排这几行
DataTable.DefaultView.Sort = "dr1 desc,"dr2 desc";
DataTable= DataTable.DefaultView.ToTable();
因为我要用好几个DataTable,每个DataTable都要排序一下,这样写,有些DataTable能排序,但是有些又不行,没找到什么规律,还有什么方法能排序啊
...全文
543 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwc99sx 2015-06-17
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
要么不足3位的全部补齐到3位 这样006.500就会比018.200小
终于找到原因了,我还特意转成double的,忘了列的数据类型就是string,我直接重新构建了两个double类型的列,解决了,谢谢
於黾 2015-06-17
  • 打赏
  • 举报
回复
所以6.5会比18.2大.因为"点"比"数字"的ACSII码要大 其实是因为6比1大 当然如果是6.5和61.5比较,依然还是6.5大,因为第一个字符相同,第二个字符前面是点,后面是1,点比1大 总之要么补齐位数,让字符串从左到右按位都对齐 要么就按数字来比较 不要把参差不齐的字符串直接比较大小
於黾 2015-06-17
  • 打赏
  • 举报
回复
要么不足3位的全部补齐到3位 这样006.500就会比018.200小
於黾 2015-06-17
  • 打赏
  • 举报
回复
因为你的字段是字符串类型 字符串类型比较大小就是从左到右依次比较 所以6.5会比18.2大.因为"点"比"数字"的ACSII码要大 要么你把字段类型换成int
zwc99sx 2015-06-17
  • 打赏
  • 举报
回复
引用 6 楼 smthgdin 的回复:
[quote=引用 3 楼 smthgdin 的回复:] 记得可以如此:dt.select("order by xxxxxxxx");
DataTable dt = new DataTable(); dt.Select("where条件", "排序条件"); 楼主试试看。[/quote] 我要保留所有行,所以where条件是空的,看看怎么写 dt.Select("", "aaa desc,REMARK desc"); dt.Select("", "aaa,REMARK desc");这两个排序出来都是乱的,找不到什么规则
zwc99sx 2015-06-17
  • 打赏
  • 举报
回复
引用 楼主 zwc99sx 的回复:
DataTable按某两列dr1,dr2排序,先dr1从大到小排,如果有几行dr1相等,再根据dr2从大到小排这几行 DataTable.DefaultView.Sort = "dr1 desc,"dr2 desc"; DataTable= DataTable.DefaultView.ToTable(); 因为我要用好几个DataTable,每个DataTable都要排序一下,这样写,有些DataTable能排序,但是有些又不行,没找到什么规律,还有什么方法能排序啊
这些数都是经过处理计算出来的,不是查询出来的,我底下发了几张图,你们看看
smthgdin_020 2015-06-17
  • 打赏
  • 举报
回复
引用 3 楼 smthgdin 的回复:
记得可以如此:dt.select("order by xxxxxxxx");
DataTable dt = new DataTable(); dt.Select("where条件", "排序条件"); 楼主试试看。
zwc99sx 2015-06-17
  • 打赏
  • 举报
回复

DataTable.DefaultView.Sort = "aaa desc,"REMARK desc";我先按aaa这一列排序,有相同的就按REMARK排序,但是出来的有这三种
  • 打赏
  • 举报
回复
有些能有些不能是什么意思?
smthgdin_020 2015-06-17
  • 打赏
  • 举报
回复
记得可以如此:dt.select("order by xxxxxxxx");
於黾 2015-06-17
  • 打赏
  • 举报
回复
不能排序的到底什么现象 是根本就和原来一样,没有变化 还是排序的顺序不是你期望的顺序?
蝶恋花雨 2015-06-17
  • 打赏
  • 举报
回复
直接在SQL里面排序不行吗?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧