Foxtable(狐表)用户栏目专家坐堂 → 能区别空值和0吗?


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

主题:能区别空值和0吗?

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


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
能区别空值和0吗?  发帖心情 Post By:2024/5/28 22:41:00 [只看该作者]

1、系统生成了一个表,其中列【月数】是证书类型

2、【月数】列可以填写 0、1、2、3、4、5、6,为了提醒使用者,【月数】列要填写,不能为空,但系统没法区分  0 和空

Dim i1 As Integer = 0
For Each dr1 As Row In Tables("教师发放绩效申领窗体_仅本单位已申请名册").Rows
      If dr1("月数") = Nothing Then
            i1 = i1 + 1
            Messagebox.Show( dr1("教师姓名") & " : " & dr1("申请发放月数") & "  :  " &  len(dr1("申请发放月数") ))
       End If
Next

3、其中 Messagebox.Show( dr1("教师姓名") & " : " & dr1("申请发放月数") & "  :  " &  len(dr1("申请发放月数") ))返回的值是 : 张三  : 0 : 4 ,不知道这里的4是什么原因

请问:能区分空值和0吗?

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


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2024/5/28 23:03:00 [只看该作者]

For Each dr1 As DataRow In DataTables("名册").Select(" 月数 Is null  ","序号")
   i1 = i1 + 1
end if

我用这种方法区别了空值和0 ,上面的语句找出的就是空值,不知道对不对?

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110551 积分:562645 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/28 23:05:00 [只看该作者]

4的原因是:https://learn.microsoft.com/ZH-CN/dotnet/api/microsoft.visualbasic.strings.len?view=netframework-4.0,整数变量在内存里需要4个字节存储,所以是4。

判断空值需要使用isnull:http://www.foxtable.com/webhelp/topics/0595.htm

帮助搜索“空值”,有几篇和空值有关的帮助,建议都看一看



 回到顶部