以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  后台计算不出值的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179883)

--  作者:HANZHIGANG
--  发布时间:2022/9/15 16:07:00
--  后台计算不出值的问题
 Dim cmd4 As New SQLCommand
 cmd4.C
 cmd4.CommandText = "UP DATE {运单管理} SET 下游运费余额 = 下游台数*下游单价 + 下游调整金额 - 下游考核金额 - 下游借款金额 W H E R E [调度单号] = \'" & e.DataRow("调度单号") & "\'"
 cmd4.ExecuteNonQuery() 

当下游调整金额、考核金额、借款金额的任意一列为空时,下游运费余额不进行计算,如何解决这个问题

--  作者:有点蓝
--  发布时间:2022/9/15 16:11:00
--  
参考:http://www.foxtable.com/webhelp/topics/0602.htm

cmd4.CommandText = "UP DATE {运单管理} SET 下游运费余额 = isnull(下游台数,0) * isnull(下游单价,0) + ......

--  作者:HANZHIGANG
--  发布时间:2022/9/15 16:34:00
--  
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
用于函数参数的个数不对 在查询表达式 \'isnull([下游金额],0) + isnull([下游调整],0) - isnull([下游考核],0) + isnull([预借合计],0)\' 中。

语法错误 (操作符丢失) 在查询表达式 \'isnull([下游运费金额],0) + isnull([下游调整金额],0) - isnull([下游考核金额],0) - isnull([下游借款金额],0) WHERE [调度单号] = \'DD220806002\'\' 中。

现出以上错误提示
代码如下:
Dim cmd4 As New SQLCommand
cmd4.C
cmd4.CommandText = "UP DATE {运单管理} SET 下游运费余额 = isnull([下游运费金额],0) + isnull([下游调整金额],0) - isnull([下游考核金额],0) - isnull([下游借款金额],0) W H E R E [调度单号] = \'" & e.DataRow("调度单号") & "\'"
cmd4.ExecuteNonQuery() 

Dim cmd6 As New SQLCommand
cmd6.C
cmd6.CommandText = "UP DATE {调度管理} SET [下游余额] = isnull([下游金额],0) + isnull([下游调整],0) - isnull([下游考核],0) + isnull([预借合计],0) W H E R E [调度单号] = \'" & e.DataRow("调度单号") & "\'"
 cmd6.ExecuteNonQuery() 

--  作者:有点蓝
--  发布时间:2022/9/15 16:51:00
--  
应该是有sql里面出现了全角的括号和逗号,改为半角的英文括号和逗号
--  作者:HANZHIGANG
--  发布时间:2022/9/15 16:57:00
--  
查了一遍,还是不行,是不是和我用的Access做的数据源有关?
--  作者:有点蓝
--  发布时间:2022/9/15 17:16:00
--  
access改为使用iif

cmd4.CommandText = "UP DATE {运单管理} SET 下游运费余额 = iif([下游运费金额] is null,0,[下游运费金额]) +