如何正确处理数据库中的Null

对于初学者,在处理数据库中的Null资料型态是有一点麻烦的事,在这篇文章文章中我们将谈谈Null,你将会了解到如何知道一个值是Null,哪些函数可以或不可以处理Null首先,我们必须知道在VBScript中,Variant是唯一的一种资料型态,对于那些已经熟悉其它语言的程序开发者,可能会感到有点不习惯。使用Variant的好处在于其相当有弹性,因为Variant可以储存任何数据类型,例如,整数,字符串,日期时间,甚至包括对象及数组。然而弹性是必须付出代价的,因为指定Variant可能会比指定特殊数据类型所用到的内存来得多
在Variant数据类型中还有两种很特殊的子类型(Subtype):Empty及Null,事实上称子类型可能不太恰当,因为他们并不储存某些值,当一个变量的资料子类型为Empty或Null,他们的值就是Empty或Null
Empty
一个变量在被宣告后,但在其被指定一个值之前,这个变量的资料子类型就是Empty,换句话说,Empty就相当于"尚未初始化",我们来看看下面的例子
DimvarTest
Response.WriteTypeName(varTest)
其执行结果应该为Empty,因此Empty可以说是一个变量的初始资料子类型及初始值,Empty只是代表一个变量的状态,试试下面的例子
DimvarTest
Response.WriteCLng(varTest)
Response.WriteCStr(varTest)
第一行的程序将显示0,因为Empty被表示为整数时就是0,第二行执行之结果将是什么都不显示,因为当被表示为字符串时Empty就是Empty,或可说是长度为零的字符串
当一个变量被指定一个值后,它便不再是Empty,它将是其它的子类型,依资料的类型而有所不同,当然,你还是可以利用Empty这个关键词将这变量变回Empty子类型
varTest=Empty
有两种方式你可以判断一个变量是否为Empty
IfvarTest=EmptyThen
Response.Write"Thevariableisempty."
EndIf
或是
IfIsEmpty(varTest)Then
Response.Write"Thevariableisempty."
EndIf
Null
Null这个资料子类型和Empty很类似,但不同点在于Empty代表一个变量尚未被初始化,也就是还没有被赋予任何的值,而一个变量为Null只有在你指定它为Null之后。最常遇到Null的机会应该是在处理数据库的时候,当一个字段没有资料时,便是Null
指定和判断Null的方法与Empty很类似
varTest=Null
然而你只能使用IsNull()函数来判断Null,这是因为Null所代表的是不合法的资料,你可以试试以下的例子
DimvarTest
varTest=Null
IfvarTest=NullThen
Response.Write"ThevariablehasaNullvalue."
EndIf
执行的结果并不会显示ThevariablehasaNullvalue.要判断一个变量是否为Null你应该使用IsNull()函数
DimvarTest
varTest=Null
IfIsNull(varTest)Then
Response.Write"ThevariablehasaNullvalue."
EndIf
当你在处理由数据库中所取出的Null的资料时,你必须要很注意,因为Null所代表的是不合法的资料,当某些函数在处理数学运算时,Null可能会制造一些麻烦,例如
DimvarTest
varTest=Null
varTest=CLng(varTest)
执行结果你将看到"InvalidUseofNull"的错误讯息,再看看下面的例子
DimvarTest
DimlngTest
varTest=Null
lngTest=2+varTest
Response.WriteTypeName(lngTest)
你会发现,Null加上2还是Null因此,当你从数据库取得资料后,你应先用IsNull()来判断字段是否为Null,再做适当的处理,例如
lngQty=oRs("Quantuty")
IfIsNull(lngQty)Then
lngQty=0
EndIf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值