System.DBNull.Value有關問題

在今天寫“屬性賦值代碼”中遇見一個問題: 類型“System.DBNull”的對象無法轉換爲類型“System.String”。
主要是因爲數據庫中的這個字段是空值,在這個地方我浪費了很長的時間,最後還是解決了這個問題。其實很簡單就是在賦值前寫串代碼判斷。
可是很多人都會隨意的寫出這樣的代碼:

if(i!=null)//判斷語句
{
        //執行屬性賦值的代碼    
}
這樣的寫法不正確,原因是因爲DBNull 並不是 null ,雖然都是空值,但是這兩個空值不同;下面是兩者的含義:
 DbNull 是指數據庫中當一個字段沒有被設置值的時候的值,相當於數據庫中的“空值”。
null是指空引用。(C#、vb)
所以正確的判斷的語句應該這樣寫:
if(i!= System.DBNull.Value)//正確的寫法    
{    
                //執行屬性賦值的代碼        
}

這樣寫就沒錯了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章