Null、Nothing和字符串空的区别

Null

在计算机中Null含义通常表示空值,无结果,或是空集合。其深刻含义并非是“0”,而是表示“未知”的值,大概有三种情况:
1)知道数据存在,但不知道具体值.
2)不知道数据是否存在.
3)数据不存在.

字符串空

就像你面前有一个杯子,虽然里面没水,没别的什么东西,但是还是有空气的,在咱们写代码的时候,首先想到的就是:if(txtCardNo.Text==”“),这里的“”就是代表什么都没有,即没在Text框框中输入任何内容。
我对这里感触最深的一个例子就是我的组合和查询用的是存储过程,在满足不满足条件的时候代码是这样写的:
SET NOCOUNT ON;

-- Insert statements for procedure here
set @TempSql= 'SELECT * FROM '+@tableName +' WHERE ' +@cmbZiDuan1+char(32)+@cmbCaoZuoFu1+char(32)+char(39)+@txtSearch1+char(39)
 if (@cmbRealation1 **is not null**)
 BEGIN  
    set @TempSql=@TempSql +@cmbRealation1 +char(32)+ @cmbZiDuan2+char(32)+ @cmbCaoZuoFu2+char(32) +char(39)+ @txtSearch2+ char(39)
    if (@cmbRealation2 **is not null**)
    BEGIN  
        set @TempSql=@TempSql+@cmbRealation2+char(32)+@cmbZiDuan3+char(32)+@cmbCaoZuoFu3+char(32)+char(39)+@txtSearch3+char(39)
    END
END
 EXECUTE(@TempSql) 

但是在真正的运行的时候总是报错,说是D层查询需要ZiFuDuan@,但是未提供ZiFuDuan2,这就很明显的说明我的查询语句有错,但是检查了很多遍,我的查询语句真的没有什么错误,于是就找刚鹏解决,结果刚鹏说:你的问题和我的一样,所以他即刻就给我解决了这个问题,改后代码为:
SET NOCOUNT ON;

-- Insert statements for procedure here
set @TempSql= 'SELECT * FROM '+@tableName +' WHERE ' +@cmbZiDuan1+char(32)+@cmbCaoZuoFu1+char(32)+char(39)+@txtSearch1+char(39)
 if (@cmbRealation1 **<>''**)
 BEGIN  
    set @TempSql=@TempSql +@cmbRealation1 +char(32)+ @cmbZiDuan2+char(32)+ @cmbCaoZuoFu2+char(32) +char(39)+ @txtSearch2+ char(39)
    if (@cmbRealation2 **<>''**)
    BEGIN  
        set @TempSql=@TempSql+@cmbRealation2+char(32)+@cmbZiDuan3+char(32)+@cmbCaoZuoFu3+char(32)+char(39)+@txtSearch3+char(39)
    END
END
 EXECUTE(@TempSql) 

Nothing

Nothing就相当于c++或c#里面的null,这样可以避免对变量进行不需要的赋值,因为有时候初值也会影响变量的使用。

在VBA,判断一个字符串不为可以使用以下方法: 1. 使用Len函数判断字符串的长度是否大于0。如果字符串的长度大于0,则表示字符串不为。例如: ``` If Len(str) > 0 Then ' 字符串不为的处理 End If ``` 2. 使用IsEmpty函数判断字符串是否为。需要注意的是,IsEmpty函数对于vbNullString会返回True,但对于字符串不会返回True。例如: ``` If Not IsEmpty(str) Then ' 字符串不为的处理 End If ``` 3. 使用vbNullString常量判断字符串是否为null。vbNullString表示一个empty字符串,与字符串不同。可以使用vbNullString和字符串进行比较来判断字符串是否为。例如: ``` If str <> vbNullString Then ' 字符串不为的处理 End If ``` 4. 使用Trim函数去除字符串两端的格后,再判断字符串的长度是否大于0。例如: ``` If Len(Trim(str)) > 0 Then ' 字符串不为的处理 End If ``` 以上是在VBA判断字符串不为的几种常见方法。根据具体的需求和场景,选择适合的方法来判断字符串是否为。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vba 判断文本框内容是否为_Excel/VBA编程用户交互函数(二)——InputBox()函数和inputbox方法...](https://blog.csdn.net/weixin_39754831/article/details/110308628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [VB判断的几种方法,Null, Missing, Empty, Nothing, vbNullString区别](https://blog.csdn.net/CharmaineXia/article/details/105351676)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值