以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- OriginalValue原数值为空按0计算要如何写? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44968) |
-- 作者:scott518 -- 发布时间:2014/1/13 9:50:00 -- OriginalValue原数值为空按0计算要如何写? 如下语句:直接更新后台数据时,如果e.DataRow.OriginalValue("数量")为null时就不会计算了,请问表达式中要怎么写如果为空就按0来处理,注释掉的那行写法没提示出错,但好象计算结果也不正确。谢谢! Dim cmd As New SQLCommand cmd.ConnectionName = Mydata cmd.CommandText = "Update {订单明细} Set 累计入库 = 累计入库 - " & e.DataRow.OriginalValue("数量") \'cmd.CommandText = "Update {订单明细} Set 累计入库 = 累计入库 - isnull(" & e.DataRow.OriginalValue("数量") & ",0) cmd.ExecuteNonQuery() |
-- 作者:Bin -- 发布时间:2014/1/13 9:55:00 -- cmd.CommandText = "Update {订单明细} Set 累计入库 = 累计入库 - " & IIF(e.DataRow.OriginalValue("数量") is nothing,0,e.DataRow.OriginalValue("数量")) |
-- 作者:狐狸爸爸 -- 发布时间:2014/1/13 9:56:00 -- cmd.CommandText = "Update {订单明细} Set 累计入库 = 累计入库 - iif(数量 Is Null,0,数量)"
如果是SQL Server
cmd.CommandText = "Update {订单明细} Set 累计入库 = 累计入库 - (Case When 数量 Is Null Then 0 Else 数量 End)" [此贴子已经被作者于2014-1-13 10:00:24编辑过]
|
-- 作者:scott518 -- 发布时间:2014/1/13 10:16:00 -- 谢谢,数据库是sql server 的,BIN的那个写法适合SQL Server吗,因为一定要用原始值判断,狐爸那个case when数量是指数量的原始值吗? [此贴子已经被作者于2014-1-13 10:21:01编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2014/1/13 10:45:00 -- sql语句,取的都是数据库的原始值,不用担心。 |