以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  帮助中为空判断的疑问  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170163)

--  作者:蓝色理想
--  发布时间:2021/7/14 12:44:00
--  帮助中为空判断的疑问

帮助中:

如果要判断旧值是否为空,则既可用:e.OldValue Is Nothing也可用IsNull方法判断: e.DataRow.IsNull("列名")
切不可用 e.DataRow("列名") Is Nothing 来判断旧值是否为空,因为对于数值列,如果值为空,e.DataRow("列名")返回的是0,如果是日期列,则返回#01/01/0001#,显然这都不是空值。


疑问:

帮助中也说 ,在datachanging 事件中,新值还没有写入,所以

e.OldValue 等于e.DataRow("列名") Is Nothing


那么上面说 可用:e.OldValue Is Nothing 判断是否为空

切不可用 e.DataRow("列名") Is Nothing 来判断旧值是否为空


为什么啊,感觉不都一样吗? 不都是用 Is Nothing吗?

Is Nothing 不能用来判断 数值列 是否为空吗?



--  作者:有点蓝
--  发布时间:2021/7/14 13:36:00
--  
因为他们的类型不一样,这个涉及到面向对象的原理。

个人的建议,能使用isnull判断的优先使用isnull