DataTable排序,百思不得其解……

Arieslns 2007-07-18 09:36:23
DataSet dsTemp = new DataSet();
DataSet ds = new DataSet();

dsTemp = WebFunction.dataSet(sqlStr);
ds.Merge(dsTemp);
dsTemp = WebFunction.dataSet(sqlStr_m);
ds.Merge(dsTemp);
ds.Tables[0].DefaultView.Sort = "付款日 ASC";
dt = ds.Tables[0].DefaultView.ToTable();

但排序后的结果差强人意……
为什么10月份的日期会排列在0X月的前边?而0X月之间的顺序却是正确的,为何?请高手指教。
付款日
2007/10/17
2007/03/19
2007/03/21
…………
2007/09/07
...全文
227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Arieslns 2007-07-18
  • 打赏
  • 举报
回复
我发现问完问题后,往往自己把问题解决了。看来CSDN是个好地方。
是日期格式的问题:
2007/10/17与2007/03/17升序排序为:
2007/03/17
2007/10/17
而2007/10/17与2007/3/17升序排序为:
2007/10/17
2007/3/17

谢谢大家光临寒舍,这就结帖散分。
Jinglecat 2007-07-18
  • 打赏
  • 举报
回复
应该你的按字符串排序了

要用 DateTime 类型
北京的雾霾天 2007-07-18
  • 打赏
  • 举报
回复
日期是字符串,还是日期类型的值?
两者排序应该不一样。
Arieslns 2007-07-18
  • 打赏
  • 举报
回复
sqlStr,sqlStr_m为结构相同,但查询条件不同的SQL语句,而两次查询出的结果需要合并为一个DataTable供表示层调用……如果能用Order By解决,也就不会用DataSet.Merge()了。
Arieslns 2007-07-18
  • 打赏
  • 举报
回复
……默认是这样的?不会吧,这是错误的排序,怎么会是默认的……
mainbaby 2007-07-18
  • 打赏
  • 举报
回复
试试在sql语句加order by 付款日
chuxue1342 2007-07-18
  • 打赏
  • 举报
回复
默认好像都是这样的!!

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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