資料庫的某一個欄位,裡面是「Null」值的時候,ASP.NET無法把這樣的 Null值,呈現在畫面上。 

因為ASP.NET不會自動把Null值轉換成一般的字串(String),因此會出現錯誤訊息。


 

VB語法如下:

特別注意!!

有時候,資料庫的某一個欄位,裡面是「Null」值的時候,ASP.NET無法把這樣的 Null值,呈現在畫面上。因為ASP.NET不會自動把Null值轉換成一般的字串(String),因此會出現錯誤訊息。……關於Null的定義,請參考資料庫的相關書籍。

 

例如:資料庫裡面,有個欄位test123的值剛剛好是「Null」。

那麼,我們想要把這個欄位呈現在網頁上,下面這行程式碼一定會出錯!

<% Response.Write(dr.Item(“資料表的欄位名稱”)) %>

為了避免這種例外錯誤的產生,在後置程式碼(Code Behind)裡面,我們必須要一個IF判別式來防堵:

 

IF Not dr.Item(“資料表的欄位名稱”) Is DBNull.Value Then

     ‘--註解:如果 test123欄位的值,不是「Null」的話,才會執行這區。

     Response.Write(dr.Item(“資料表的欄位名稱”))

End IF

 

 

相關寫法:Convert.IsDBNull 方法

 

Convert.IsDBNull( dr("欄位名稱") )    若使用C# 請改成 dr["欄位名稱"]

  

VB -- DBNull.Value.Equals(value)

C# -- DBNull.Value.Equals(value)

 

如果是 C#語法,請使用

if (! DBNull.Value.Equals(dr[“資料表的欄位名稱”]))

{

}  

--------------------------------------------------------------------------------

  

如果是用資料繫結運算式,寫在HTML裡面(.aspx檔),請用下列作法:

Convert.IsDBNull(Eval("column"))

或是

Eval("Column").Equals(System.Data.DbNull)

  

相關文章請看:

摘錄: 資料庫的 NULL 值是一個標記,標示說資料庫目前這個欄位是空的,它的本質和空字串也不同,所以用 string.IsNullOrEmpty(myField.Value) 是無法判斷它是否為 NULL 值的,這也就是為什麼 DataRow 要提供一個 IsNull() 方法,而 DataReader 要多一個 IsDBNull() 的方法,就是因為 NULL 值的獨特性。

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

 

寫信給我--  mis2000lab (at) yahoo.com.台灣  或是  school (at) mis2000lab.net

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................   Google+   https://plus.google.com/100202398389206570368/posts ........

................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

文章標籤
創作者介紹

MIS2000 Lab -- ASP.NET專題實務 / 線上教學文件

MIS2000 Lab 發表在 痞客邦 PIXNET 留言(0) 人氣()