C#数据集和DbNull值

时间:2010-06-17 12:41:59

标签: c# .net database sql-server-2008

我有一个普遍的问题 - 让我说我有一个SQL Server 2008数据库,它有一些可以为空的列。其中一些是空的,一些不是。

接下来,我在数据库中查询C#中的DataRow。

这些空字段在DataRow对象中有什么价值? 我看到他们有C#“null”值,但有人在这里说DbNull!= C#null ....

请解释...... 感谢。

2 个答案:

答案 0 :(得分:4)

DBNull.Valuenull不同。

DBNull.Value Field (System)

答案 1 :(得分:2)

使用无类型数据集(在DataRow中),您可以像这样进行测试:DbNull.Value.Equals(dataRow["column"])

使用类型化数据集,对于可为空的列,可以生成IsNull个方法,例如 myTypedDataRow.IsMyColumnNull()默认情况下,您应该在尝试访问实际myTypedDataRow.MyColumn值之前进行测试,因为如果它具有空值,则会引发异常。可以通过在DataSet Designer中设置列的NullValue属性来更改此行为。