Foxtable(狐表)用户栏目专家坐堂 → 排序Bug


  共有1960人关注过本帖树形打印复制链接

主题:排序Bug

帅哥哟,离线,有人找我吗?
lgzhao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
排序Bug  发帖心情 Post By:2021/9/23 9:17:00 [只看该作者]

发现一个Bug,sql语句的

例如:
 cmd.CommandText = "S00ELECT    *   FROM {Trans}   where   InventoryGLCode=‘12345’  order by   Date asc, [_identify] asc"

Dim DB As DataTable= cmd.ExeddddcuteReader(True)

此时得到的DB,如果用 For each datarow 语句逐行输出date和_identify的值,会发现输出的顺序永远事按_identify asc 排列的,Date列没有发挥作用。

但是当把这个DB绑定到Table进行显示的时候,table显示row的顺序却是正确的(即Date asc, [_identify] asc)。

只有DB内部datarow的顺序是错误的。

平时用着也许看不出问题。但是当计算总账流水的时候,只生成DB但却并不会输出到table显示,而且为了节省传输的时间空间,并不会读取所有的sql语句排序列,此时逐行循环的时候就会导致每行的余额计算都是错误的。


[此贴子已经被作者于2021/9/23 9:19:03编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106145 积分:539842 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/23 9:24:00 [只看该作者]

DataTable是无序的,不会受sql的排序影响。也不要迷信Table的排序就是正确的

tabel建议使用sort排序获取正确的顺序
DataTable通过select指定排序获取正确的顺序

 回到顶部
帅哥哟,离线,有人找我吗?
lgzhao
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/9/23 9:34:00 [只看该作者]

好吧。只是有些额外的开销。

但是我有个老系统,2020版的foxtable发布的,在客户那里正式用了一年多了。那个流水账余额就一直是正确的。算法就是上面的算法, 旧foxtable的排序或许和新版本的逻辑不一样?



 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106145 积分:539842 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/23 9:54:00 [只看该作者]

也许。再说了foxtable的datatable基于.net的datatable,.net的datatable本身填充数据也不是按顺序的

 回到顶部
帅哥哟,离线,有人找我吗?
lgzhao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:302 积分:2069 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2021/9/23 9:54:00 [只看该作者]

好的。谢谢蓝老师

 回到顶部