以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [分享]纪念我在VB的一个坑的解决 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157881) |
|
-- 作者:hitzfeld -- 发布时间:2020/11/1 0:23:00 -- [分享]纪念我在VB的一个坑的解决 问题的产生是在我要判断一个日期控件DateTimePicker是否有输入值(也就是是否为空)的问题,然后我写了下面的代码: Dim Day As Date = e.Form.Controls("sxrq").value If TAB Is Nothing OrElse day Is Nothing Then MSGBOX("请先选择供应商和生效日期") Return Else 然后就报错了。然后找教程,发现下面的提示: ----------------------------------------------------------------------------------------------------------------- 需要注意的是,数值、日期、逻辑三种类型的变量,是永远不会为空的,其它任何类型的变量,如果没有明确赋值,其初始值都是Nothing。 数值型的初始值为0,逻辑型变量的初始值为False,日期型的初始值为#1/1/1 0:00:00#,如果你将Nothing赋给这些变量,也只是使得这些变量回到初始值而已。 ----------------------------------------------------------------------------------------------------------------- 但是问题是,教程并没有说明要怎么判断DateTimePicker是否为空,然后我不断的尝试各种方法来判断,始终不能得到正确的答案。直到在VB.NET论坛搜索到一篇文章: 为什么我无法检查\'DateTime\'是否为\'Nothing\'?https://cloud.tencent.com/developer/ask/113482 才明白过来,原来这个问题还真不简单。正确的代码如下 Dim Day As Date? = e.Form.Controls("sxrq").value If TAB Is Nothing OrElse day Is Nothing Then MSGBOX("请先选择供应商和生效日期") Return Else 简直是晕死我了!答案就是一个?。这个问题折腾了我三天了!终于被我搞定了!考虑到教程没有说到这个问题,所以斗胆发上来和初学者共享,同时纪念我在VB。net编程掉进的坑。 |
|
-- 作者:cbt -- 发布时间:2020/11/1 9:07:00 -- Dim Day As Date = e.Form.Controls("sxrq").value If day = Nothing Then MSGBOX("请先选择生效日期") Return Else
|
|
-- 作者:cbt -- 发布时间:2020/11/1 9:09:00 --
|
|
-- 作者:有点蓝 -- 发布时间:2020/11/1 20:37:00 -- 2楼3楼正解,帮助搜“空值”,有相关的说明的 |