特別注意!!

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

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

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

<%  Response.Write(dr.Item(“test123”))  %>

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

IF  Not  dr.Item(“test123”)  Is DBNull.Value  Then

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

       Response.Write(dr.Item(“test123”))

End IF

 

相關討論,請看 ---http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3629134&SiteID=14&mode=1

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

 

 

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

Convert.IsDBNull(Eval("column"))

或是

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

資料來源:http://tw.knowledge.yahoo.com/question/question?qid=1508091105980

 

 

相關文章請看:

Oh~my god... 資料庫中的 NULL 值和程式語言中的 null 不同,別混為一談。 

網址:http://www.dotblogs.com.tw/regionbbs/archive/2008/10/09/5635.aspx

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

 

 


 

 

......  寄信給我    mis2000lab (at) 雅虎.com.台灣 ................................................................................................................
ASP.NET專題實務  (文魁出版,VB版 P8187 / C#版P09027

              下集已經出版囉~~~ASP.NET專題實務II:範例應用與4.0新功能

.............................................................................................................. 寄信給我    mis2000lab (at) 雅虎.com.台灣 ........