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

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

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

如何正确处理数据库中的Null 对于初学者, 在处理数据库中的 Null 资料型态是有一点麻烦的事, 在这篇文章文章中我们将谈谈 Null , 你将会了解到如何知道一个值是 Null , 哪些函数可...
  • u014739780
  • u014739780
  • 2014年05月10日 10:17
  • 220

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

如何正确处理数据库中的Null 对于初学者, 在处理数据库中的 Null 资料型态是有一点麻烦的事, 在这篇文章文章中我们将谈谈 Null , 你将会了解到如何知道一个值是 Null , 哪些函数可...
  • u014440119
  • u014440119
  • 2014年05月18日 11:42
  • 193

查询数据库,处理NULL值问题

在做机房收费系统时,每当从数据库中查找数据并显示到窗体界面时,如果查询的记录中有字段值为NULL时,就会报错:   比如:(例子可能不恰当,因为注册时不允许不输入学生姓名。但是就是那个意思...
  • judyge
  • judyge
  • 2015年11月02日 22:27
  • 423

Java中null与数据库的NULL的认识

java和数据库中null、NULL的认识                                                    java和数据库中null、NULL的认识 Ja...
  • wxliu1989
  • wxliu1989
  • 2014年04月28日 14:13
  • 2350

数据库中空字符串和NULL两个概念值的区别

数据库中的NULL表示“没有对(列)变量输入数据”,即在数据库中的NULL可以区分“没有对(列)变量输入数据”和“有对(列)变量输入数据”这两类情况。而输入空字符串,则是这里的“有对(列)变量输入数据...
  • yangshuangtao
  • yangshuangtao
  • 2015年12月04日 12:06
  • 1860

数据库中的NULl

SQL中的NULL值,表示不知道(UNKNOWN)的数据,用作不知道数据的具体值,或者不知道数据是否存在,或者数据不存在等情况。因为引入了NULL值,故此SQL的逻辑系统是三值逻辑系统——FALSE、...
  • KBKYBAN
  • KBKYBAN
  • 2013年10月18日 09:43
  • 327

C#中往数据库插入/更新时候关于NUll空值的处理

【声明】 本文转自  http://www.cnblogs.com/zfanlong1314/archive/2013/08/07/3243533.html
  • qq_15126969
  • qq_15126969
  • 2014年10月17日 14:23
  • 1576

数据库中空字符串和NULL值两个概念的区别

数据库中的NULL表示“没有对(列)变量输入数据”,即在数据库中的NULL可以区分“没有对(列)变量输入数据”和“有对(列)变量输入数据”这两类情况。而输入空字符串,则是这里的“有对(列)变量输入数据...
  • haiross
  • haiross
  • 2015年06月11日 12:02
  • 11833

在Android中类似于java开发时的连接数据库的操作

这几天一直在敲代码敲代码敲代码,都有些糊涂了,时间都去哪了?什么都没有干就悄悄的溜走了! 好了,放上我的代码,留下自己的足迹,以后慢慢研究完善! 刚刚接触Android,如果您看到了不对的地方,请...
  • u011130648
  • u011130648
  • 2014年03月18日 15:41
  • 719

关于EXCEL数据导入到SQLSERVER中字段存在NULL的问题

已知的可以有两种解决办法,而这两种解决方法几乎如出一辙 第一种方法 1.在数据库中建表 2.然后通过将excel中的数据拷贝到Uedit32里面,通过列块模式操作成insert in...
  • z10843087
  • z10843087
  • 2014年05月10日 08:53
  • 1832
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何正确处理数据库中的Null
举报原因:
原因补充:

(最多只允许输入30个字)