2010-06-17 42 views
2

我有一個普遍的問題 - 可以說我有一個SQL Server 2008數據庫,它有一些可爲空的列。其中有些是空的,有些則不是。C#數據集和DbNull值

接下來,我在C#中查詢DataRow的數據庫。

這些空字段在DataRow對象中有什麼價值? 我看到他們有C#「null」值,但這裏有人說DbNull!= C#null ....

請解釋... 謝謝。

+0

接受答案,如果它爲你工作 – 2010-07-27 06:37:36

回答

4

DBNull.Value這與null不一樣。

DBNull.Value Field (System)

+0

如果我要寫row.Field1.trim()例如會發生什麼? – Roey 2010-06-17 12:44:08

+0

@Roey - 我的猜測是一個InvalidCastException,因爲你不能將DBNull.Value轉換爲字符串。 – 2010-06-17 12:53:28

2

隨着無類型的數據集(在DataRow中),可以測試這樣的:DbNull.Value.Equals(dataRow["column"])

隨着類型化的數據集,用於空的列,有產生IsNull方法,例如 myTypedDataRow.IsMyColumnNull()默認情況下,您應該在嘗試訪問實際的myTypedDataRow.MyColumn值之前進行測試,因爲如果它具有空值,則會引發異常。通過在DataSet Designer中設置列的NullValue屬性可以更改此行爲。