Foxtable(狐表)用户栏目专家坐堂 → [求助]关于空值的理解


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

主题:[求助]关于空值的理解

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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
[求助]关于空值的理解  发帖心情 Post By:2015/1/28 9:14:00 [显示全部帖子]

在帮助文档里面有这么一段示例

示例五

如果要允许修改订单号,但禁止删除订单号,也就是说订单号列内容不允许为空,可以将DataColChanging事件代码设置为:

If e.DataCol.Name = "订单号" Then
    If
 e.NewValue Is Nothing Then
        MessageBox.Show(
"订单号不允许为空!")
        e.Cancel = 
True
    End
 If
End
 
If

前面提到DataColChanging事件触发的时候,新的值还没有写入表中,所以如果要判断新的值是否为空,只能用e.NewValue Is Nothing
如果要判断旧值是否为空,则既可用:e.OldValue Is Nothing,也可用IsNull方法判断: e.DataRow.IsNull("列名")。
切不可用 e.DataRow("列名") Is Nothing 来判断旧值是否为空,因为对于数值列,如果值为空,e.DataRow("列名")返回的是0,如果是日期列,则返回#01/01/0001#,显然这都不是空值。


我疑惑的地方是:为什么e.OldValue Is Nothinge.DataRow.IsNull("列名")可以,而e.DataRow("列名") Is Nothing却不行,区别到底在哪儿?请高手们不吝赐教!


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


加好友 发短信
等级:童狐 帖子:233 积分:2602 威望:0 精华:0 注册:2013/9/2 23:31:00
  发帖心情 Post By:2015/1/28 12:40:00 [显示全部帖子]

谢谢,明白了

 回到顶部