田贤追博客 - QQ:260776893,Tel:13065860667

网站建设电子商务博客(网站制作,优化推广,网络营销宣传,B2B,网络广告),网络维护,平面设计及相关的文章信息发布共享。

« 独立博客的思考使用博客进行企业网络营销 »

NET C# dataview sort排序按数字而非字符排的处理办法

近来在做项目的进修,碰上这样的一个问题,从XML文件里读取的内容到一个dataview内,比如设为变量dv

在这里数据视图里有个字段,如有5,6,7,8,9,10,11,12,13,14

现在要对这些记录以此字段的数值大小排列,如以升序排,

dv.Sort="字段名 asc";

结果显示顺序为:10,11,12,13,14,5,6,7,8,9

它是以字符串排序,郁闷了我好一会,后来是这样来解决的,就是新加一个列,来设置为数字类型,

代码如下,从中复制过来的,

 dv.RowFilter = filterStr;
                DataTable dt = dv.ToTable();
                dt.Columns.Add("sortD", System.Type.GetType("System.Int32"));
                dt.Columns["sortD"].Expression = "Convert(dateD, 'System.Int32') ";

                dt.Columns.Add("sortM", System.Type.GetType("System.Int32"));
                dt.Columns["sortM"].Expression = "Convert(dateM, 'System.Int32') ";

                dv = dt.DefaultView;
                dv.Sort = " dateY desc,sortM desc,sortD desc, id desc";
                dt = dv.ToTable();

                dv.Dispose();

这样就解决了问题,

供遇到同样问题的人来共享一下,

其实就是能过。

     dt.Columns.Add("sortD", System.Type.GetType("System.Int32"));
                dt.Columns["sortD"].Expression = "Convert(dateD, 'System.Int32') ";

给表添加一列sortD,然后以sortD来排就行了,这个sortD就是以数字的字段。,

 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 91204

© 2007-2009 Powered By 田贤追博客 All rights reserved. 浙ICP备09005319号·