Foxtable(狐表)用户栏目专家坐堂 → 为什么Null的值再赋给其他变量时变为不Null?


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

主题:为什么Null的值再赋给其他变量时变为不Null?

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
为什么Null的值再赋给其他变量时变为不Null?  发帖心情 Post By:2013/11/27 22:07:00 [只看该作者]

'原状态为待处理的表单向下传递时清空退回者
If zt = "待处理" Then
    pr("sys_Fback") = Nothing
End If
pr.save()
If Vars("CanSave") = True Then
    Dim cmd As New SQLCommand
    cmd.ConnectionName = Mydata
    cmd.CommandText = "select * from {事务提醒}"
    Dim dt As DataTable = cmd.ExecuteReader(True)
    If pr("sys_Fzt") <> "已完成" Then '只有"待处理"的表单才更新事务
        dr = dt.Find("单据名称 = '" & Mtb & "' and 单据编号 = '" & pr(Idcol) & "'")
        If dr IsNot Nothing Then
            dr("sys_Fback") = pr("sys_Fback")
        End If
        dt.save()
    End If
End If

执行上述代码后用  dr("sys_Fback") Is Null 来筛选数据就没有了,
msgbox(dr("sys_Fback"))显示为空值,但却不是Null了。为什么?

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/11/27 22:13:00 [只看该作者]

无解的的,赋空值null,请用sql语句。foxtable里应该是处理不了的。

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/11/27 22:18:00 [只看该作者]

谢谢有点甜,请问在表里面怎么用sql语句给某个变量赋空值,没用过?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/11/27 22:28:00 [只看该作者]

 用sqlcommand

 cmd.commandtext = "update xx表 set xx列=null where [_Identify] = xxx"

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


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2013/11/27 22:42:00 [只看该作者]

你是指直接更新后台值啊,不可以那样,保存不成功时还要撤消为原值的。我测试了一下
用  pr("sys_Fback") = Nothing 如果不再将其赋值给其他变量,直接调用pr("sys_Fback")是null的,一旦再次赋值给其他变量那个变量就不是NUll了,后来只好最后再来判断把它置为Null了,这样实际运用中增加了很多代码,确实不太方便。也只能如此了。
谢谢!

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


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

有解的:

 

dr("sys_Fback") = pr("sys_Fback")

 

改为:

 

if pr.isNull("sys_Fback") then

    dr("sys_Fback") = nothing

else

    dr("sys_Fback") = pr("sys_Fback")

end if


 回到顶部