我有一個普遍的問題 - 可以說我有一個SQL Server 2008數據庫,它有一些可爲空的列。其中有些是空的,有些則不是。C#數據集和DbNull值
接下來,我在C#中查詢DataRow的數據庫。
這些空字段在DataRow對象中有什麼價值? 我看到他們有C#「null」值,但這裏有人說DbNull!= C#null ....
請解釋... 謝謝。
我有一個普遍的問題 - 可以說我有一個SQL Server 2008數據庫,它有一些可爲空的列。其中有些是空的,有些則不是。C#數據集和DbNull值
接下來,我在C#中查詢DataRow的數據庫。
這些空字段在DataRow對象中有什麼價值? 我看到他們有C#「null」值,但這裏有人說DbNull!= C#null ....
請解釋... 謝謝。
DBNull.Value
這與null
不一樣。
如果我要寫row.Field1.trim()例如會發生什麼? – Roey 2010-06-17 12:44:08
@Roey - 我的猜測是一個InvalidCastException,因爲你不能將DBNull.Value轉換爲字符串。 – 2010-06-17 12:53:28
隨着無類型的數據集(在DataRow中),可以測試這樣的:DbNull.Value.Equals(dataRow["column"])
隨着類型化的數據集,用於空的列,有產生IsNull
方法,例如 myTypedDataRow.IsMyColumnNull()
默認情況下,您應該在嘗試訪問實際的myTypedDataRow.MyColumn
值之前進行測試,因爲如果它具有空值,則會引發異常。通過在DataSet Designer中設置列的NullValue
屬性可以更改此行爲。
接受答案,如果它爲你工作 – 2010-07-27 06:37:36