我有一个普遍的问题 - 让我说我有一个SQL Server 2008数据库,它有一些可以为空的列。其中一些是空的,一些不是。
接下来,我在数据库中查询C#中的DataRow。
这些空字段在DataRow对象中有什么价值? 我看到他们有C#“null”值,但有人在这里说DbNull!= C#null ....
请解释...... 感谢。
答案 0 :(得分:4)
DBNull.Value
与null
不同。
答案 1 :(得分:2)
使用无类型数据集(在DataRow中),您可以像这样进行测试:DbNull.Value.Equals(dataRow["column"])
使用类型化数据集,对于可为空的列,可以生成IsNull
个方法,例如
myTypedDataRow.IsMyColumnNull()
默认情况下,您应该在尝试访问实际myTypedDataRow.MyColumn
值之前进行测试,因为如果它具有空值,则会引发异常。可以通过在DataSet Designer中设置列的NullValue
属性来更改此行为。