以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- Web数据源sql语句报错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=165286) |
-- 作者:lgzhao -- 发布时间:2021/5/12 16:20:00 -- Web数据源sql语句报错 版本 2021.05.01开发版。 切换到直连sql server数据源后则没有问题。
希望贵方检查一下是否有bug。 |
-- 作者:有点蓝 -- 发布时间:2021/5/12 16:27:00 -- 更新到最新版。另外写了什么代码,发上来看看 |
-- 作者:lgzhao -- 发布时间:2021/5/12 16:38:00 -- 版本是最新的啦,其实这个问题一直都有。之前由于其他问题太多这个就没说了。 代码示例请看附件,论坛不让直接发。 这类语句我的系统里有很多,平时都好,一切换到web数据源就报错。 |
-- 作者:有点蓝 -- 发布时间:2021/5/12 16:49:00 -- 判断值的方法不正确,也不能使用IIF cr("DailyOrds_Cost") =iif(values1("a") Is system.Dbnull.value, 0,values1("a")) 改为 If Values("a").tostring = Nothing Then cr("DailyOrds_Cost") = 0 else cr("DailyOrds_Cost") = Values("退费状态") endif 其它自己改。 |
-- 作者:lgzhao -- 发布时间:2021/5/12 16:55:00 -- 有点奇怪,我原来好像是从你下面那种代码特地改成现在这样的,似乎有其他的错误逼我这样做的,要不也不喜欢写的这样麻烦嘛。似乎当返回“a”是null的时候也就是没找到任何数据的情形,Values("a").tostring会出错。 不过我再试试。谢谢。
|
-- 作者:lgzhao -- 发布时间:2021/5/12 17:13:00 -- 按照蓝老师的方法测试了一下,问题依旧。报同样的错。不是我的写法有问题,我的写法在直连数据源情况下使用好久了没问题的。 肯定是cmd.executevalues这个方法再web数据源下有问题。
|
-- 作者:lgzhao -- 发布时间:2021/5/12 17:14:00 -- 我准备改用cmd.executereaders先绕开,工作量有点大。但这个问题还是希望贵方解决不要留bug |
-- 作者:lgzhao -- 发布时间:2021/5/12 17:26:00 -- 我改用这个代码绕开了,这样测试执行没有问题,所以我基本可以肯定是cmd.executevalues这个方法在web数据源下有问题. Dim atb As DataTable = cmd.ExecuteReader If atb.DataRows.count>0 Then Dim rr As DataRow = atb.DataRows(0) cr("DailyOrds_Cost") = rr("a") cr("DailyOrds_Value") = rr("b") cr("DailyOrds_Tonnage") = rr("c") Else cr("DailyOrds_Cost") = 0 cr("DailyOrds_Value") = 0 cr("DailyOrds_Tonnage") = 0 End If |
-- 作者:有点蓝 -- 发布时间:2021/5/12 17:34:00 -- 提示什么错误? |
-- 作者:lgzhao -- 发布时间:2021/5/12 17:43:00 -- 这个是类似另外一处的错误信息。 |