Foxtable(狐表)用户栏目专家坐堂 → OriginalValue原数值为空按0计算要如何写?


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

主题:OriginalValue原数值为空按0计算要如何写?

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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
OriginalValue原数值为空按0计算要如何写?  发帖心情 Post By:2014/1/13 9:50:00 [只看该作者]

如下语句:直接更新后台数据时,如果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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/13 9:55:00 [只看该作者]

cmd.CommandText = "Update {订单明细} Set 累计入库 = 累计入库 - " & IIF(e.DataRow.OriginalValue("数量") is nothing,0,e.DataRow.OriginalValue("数量"))

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/1/13 10:16:00 [只看该作者]

谢谢,数据库是sql server 的,BIN的那个写法适合SQL Server吗,因为一定要用原始值判断,狐爸那个case when数量是指数量的原始值吗?
[此贴子已经被作者于2014-1-13 10:21:01编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/1/13 10:45:00 [只看该作者]

sql语句,取的都是数据库的原始值,不用担心。

 回到顶部