IsNull和IsEmpty的區別


一個是對象為空(IsNull),一個是值為空(IsEmpty)

IsNull指任務類型變量是否為空包括對象類型的變量。

IsNull函數:

功能:返回Boolean的值,指明表達是否不包含任何有效數據。NULL表示的是數據值未知或不可用,它不表示零(數字值或二進制值)、零長度的字符串或空白(字符值)。

IsEmpty函數:

功能:用於判斷一個變量是否已初始化,如果變量未初始化或顯式地設置為Empty,則函數IsEmpty返回True;否則函數返回False。

IsNull的一般場合:

1.對於值為NULL的,其IsNull返回為True;

2.對於數據庫來說,看是否是NULL則更簡單,若是NULL數據,則數據庫中的數據直接就是個“NULL”.   

事實上我們用的最多的還是IsEmpty和零長度字符串,下面我們要重點講講這兩個的區別(限能力有限,有錯的地方還望不吝賜教):

     何時才能算是空數據(Empty),這個也不難說:
     1 沒有初始化值的變量,不管這個變量有沒有先使用Dim聲明。
     2 直接使用 變量 = Empty。

     何時算是零長度字符串(空串)?
     a = ""
     這就是空串,說白了,也還是個字符串,就把他當成字符串理解,零長度字符串並不等同於NULL也不等同於Empty。知道數據是空串(="")還是空值(=Empty)可就顯得十分必要了,或許聽名字我們都知道他們的細微區別了,空串怎么說也是字符串,空值的類型就不清楚了,可能是字符串,所以對於一個未賦值的變量,其值等價於:Empty,""(零長度字符串),0(使用Cint轉換后),這可以從判斷一個Session是否存在的寫法中得到驗證。

       對於一個表單接收過來的值,如果文本框內容什么都沒寫,那它的值又是多少呢?是Empty還是空串?
看個簡單的例子:
       為了能正確判斷值類型,我們使用VarType函數:返回指示變量子類型的值。
       函數返回下列值:
       8 字符串
       0 Empty(未初始化)
       1 NULL(無有效數據)

下面看個簡單例子:

以下是代碼片段:

 <% If Request.QueryString("smt") <> "" Then txtName = VarType(Request.QueryString("txtName")) Response.Write(txtName) End If %> <form name="test.asp" method="get"> <input type="text" name="txtName" /> <input type="submit" name="smt" value="確定提交" /> </form>
文本框什么都沒寫,按下按鈕后,返回值是“8”,說明,對於沒有填寫數據的文本框其值為零長度字符串而不是Empty。

對於判斷Session是否存在,看個例子:
以下是代碼片段,您可以CTRL+A,然后復制。 <% Response.Write(varType(Session("name"))) %>
其返回值為:“0”,也就是Empty。那么對於判斷是否有Session盡管有多個方法,但其實使用IsEmpty(Session("name"))來判斷才是比較合適的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM