dataview.sort排序是不是一律把数据看成字符串呀?那怎么办?

DBIverson 2004-07-22 09:04:54
我的数据源是Excel表。里面的数据是小数点后很我位的一堆数,有正有负,也不知道是什么类型。在VB.net里,我把这数据赋值给Double类型的变量,不会走样。但为什么我用Tabel.DefaultView.sort排序它就不管正负了?看上去就是正数先从小到大排完,再排负数。负数是以绝对值从小到大(即实际值从大到小!)排的。这很像是按字符串来排的结果。这是不是真的?如何按数值排序呢??求助!!
...全文
240 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2004-07-23
  • 打赏
  • 举报
回复
1. find out the datatype:

Response.Write(DataView1[0]["ColumnName"].GetType().Name);

2. try to add an expression column, convert the value to the right type, for example


DataTable dt = new DataTable();
dt.Columns.Add("num",typeof(string));
string[] ss = {"0","-1","2"};
foreach (string s in ss)
{
DataRow dr = dt.NewRow();
dr["num"] = s;
dt.Rows.Add(dr);
}

dt.Columns.Add("newnum", typeof(int), "Convert(num, 'System.Int32')");
DataView dv = dt.DefaultView;
dv.Sort = "newnum asc" ;
foreach (DataRowView drv in dv)
Console.WriteLine(drv["num"]);
liyiding23 2004-07-23
  • 打赏
  • 举报
回复
你看看你的XLS文件单元格内是不是全是'开头的,如果是'开头就算看上去是数值实际是字符
不能排的,用VBA数值函数转换一下看看
isage2002 2004-07-22
  • 打赏
  • 举报
回复
如果是这样,建议你使用强类型的dataset

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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