分享
 
 
 

如何處理資料庫中的Null(z)

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

如何處理資料庫中的Null

作者:东方蜘蛛(转)

對於初學者, 在處理資料庫中的 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

希望這篇文章對你有幫助!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有