在今天寫“屬性賦值代碼”中遇見一個問題: 類型“System.DBNull”的對象無法轉換爲類型“System.String”。
主要是因爲數據庫中的這個字段是空值,在這個地方我浪費了很長的時間,最後還是解決了這個問題。其實很簡單就是在賦值前寫串代碼判斷。
可是很多人都會隨意的寫出這樣的代碼:
if(i!=null)//判斷語句
{
//執行屬性賦值的代碼
}
DbNull 是指數據庫中當一個字段沒有被設置值的時候的值,相當於數據庫中的“空值”。
null是指空引用。(C#、vb)
所以正確的判斷的語句應該這樣寫:
if(i!= System.DBNull.Value)//正確的寫法
{
//執行屬性賦值的代碼
}
{
//執行屬性賦值的代碼
}
這樣寫就沒錯了。