以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 为什么Null的值再赋给其他变量时变为不Null? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=43001) |
-- 作者:zpx_2012 -- 发布时间:2013/11/27 22:07:00 -- 为什么Null的值再赋给其他变量时变为不Null? \'原状态为待处理的表单向下传递时清空退回者 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了。为什么? 谢谢! |
-- 作者:有点甜 -- 发布时间:2013/11/27 22:13:00 -- 无解的的,赋空值null,请用sql语句。foxtable里应该是处理不了的。 |
-- 作者:zpx_2012 -- 发布时间:2013/11/27 22:18:00 -- 谢谢有点甜,请问在表里面怎么用sql语句给某个变量赋空值,没用过? |
-- 作者:有点甜 -- 发布时间:2013/11/27 22:28:00 -- 用sqlcommand cmd.commandtext = "update xx表 set xx列=null where [_Identify] = xxx"
|
-- 作者:zpx_2012 -- 发布时间:2013/11/27 22:42:00 -- 你是指直接更新后台值啊,不可以那样,保存不成功时还要撤消为原值的。我测试了一下
用 pr("sys_Fback") = Nothing 如果不再将其赋值给其他变量,直接调用pr("sys_Fback")是null的,一旦再次赋值给其他变量那个变量就不是NUll了,后来只好最后再来判断把它置为Null了,这样实际运用中增加了很多代码,确实不太方便。也只能如此了。 谢谢!
|
-- 作者:狐狸爸爸 -- 发布时间: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 |