以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQLGetValues方法存在Bug (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98729) |
-- 作者:唐尸三摆手 -- 发布时间:2017/4/6 8:24:00 -- SQLGetValues方法存在Bug 经多次测试,发现Datatable的SQLGetValues方法在MSSQL环境中存在Bug,具体测试过程如下: 1.创建MSSQL类型的数据表Orders,其中custid列为文本类型,共有4个无重复的值,样式如下 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 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 结论:SQLGetValues在MSSQL环境中使用第三个参数与第一个参数相同时,会得出错误结果。 备注:Access数据源测试未发现此Bug
|
-- 作者:有点色 -- 发布时间:2017/4/6 8:34:00 -- 嗯嗯,是的这个bug【由来已久】了。需要自己去避免以下,比如用 sqlCommand 过度一下。 |
-- 作者:nothing -- 发布时间:2017/4/6 9:13:00 -- 官方是不是可以出个“绕坑”集锦(帮助中专门一小节或论坛置顶个贴),免于不知情者掉入坑中,也方便用户,节省时间,提高效率 |
-- 作者:blackzhu -- 发布时间:2017/4/6 10:34:00 -- 额 上次我无缘无故获取不到数据,后来没有办法就直接用内存表搞定 |
-- 作者:狐狸爸爸 -- 发布时间:2017/4/6 17:55:00 -- 下次修正这个问题 |