Foxtable(狐表)用户栏目专家坐堂 → SQLGetValues方法存在Bug


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

主题:SQLGetValues方法存在Bug

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
SQLGetValues方法存在Bug  发帖心情 Post By:2017/4/6 8:24:00 [只看该作者]

经多次测试,发现Datatable的SQLGetValues方法在MSSQL环境中存在Bug,具体测试过程如下:
1.创建MSSQL类型的数据表Orders,其中custid列为文本类型,共有4个无重复的值,样式如下

此主题相关图片如下:a.png
按此在新窗口浏览图片
2.获取custid列无重复的内容集合,并按照custid列内容排序:
Dim dt As DataTable = DataTables("Orders")
Dim lst As List(of String) = dt.SQLGetValues("custid","custid Is Not Null","custid")
Output.Show(lst.Count)

执行结果为0

此主题相关图片如下:b.png
按此在新窗口浏览图片
3.获取custid列无重复的内容集合,不使用排序参数:
Dim dt As DataTable = DataTables("Orders")
Dim lst As List(of String) = dt.SQLGetValues("custid","custid Is Not Null")
Output.Show(lst.Count)

执行结果为4

此主题相关图片如下:c.png
按此在新窗口浏览图片
结论:SQLGetValues在MSSQL环境中使用第三个参数与第一个参数相同时,会得出错误结果。
备注:Access数据源测试未发现此Bug

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/6 8:34:00 [只看该作者]

嗯嗯,是的这个bug【由来已久】了。需要自己去避免以下,比如用 sqlCommand 过度一下。

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


加好友 发短信
等级:二尾狐 帖子:517 积分:3383 威望:0 精华:0 注册:2013/1/3 17:08:00
  发帖心情 Post By:2017/4/6 9:13:00 [只看该作者]

官方是不是可以出个“绕坑”集锦(帮助中专门一小节或论坛置顶个贴),免于不知情者掉入坑中,也方便用户,节省时间,提高效率

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9876 积分:57613 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2017/4/6 10:34:00 [只看该作者]

额  上次我无缘无故获取不到数据,后来没有办法就直接用内存表搞定

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2017/4/6 17:55:00 [只看该作者]

下次修正这个问题

 回到顶部