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,这样可以避免对变量进行不需要的赋值,因为有时候初值也会影响变量的使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值