如何检查空值?

时间:2009-04-22 11:15:32

标签: c# .net subsonic

我有一个整数列,可能有一个数字或没有分配给它(即在数据库中为null)。如何检查它是否为空?

我试过了

if(data.ColumnName == null)
{
    ...
}

这也不起作用(因为SubSonic不为ActiveRecord使用可空类型(适用时))

if(data.ColumnName.HasValue)
{
    ...
}

如果存储在数据库中的值为0,那么这将无济于事:

if(data.ColumnName == 0 /* or 0x000? */)
{
    ...
}

DateTime字段也可能出现同样的问题。

5 个答案:

答案 0 :(得分:6)

尝试:

if(data == System.DBNull)

答案 1 :(得分:1)

了解如何做到这一点。 SubSonic有一种方法可以将值作为对象来进行空检查:

if(data.GetColumnValue("Column Name") == null)
{
    ...
}

答案 2 :(得分:0)

如果您的数据变量是强类型数据行,这可能会有所帮助:

if(data.IsNull("ColumnName")) { ... }

答案 3 :(得分:0)

DBNull是空列的值。

DBNull是一种值类型。值类型不能为空。

假设一个SqlDataReader ...检查null是:

if(reader [“colname”)== DBNull.Value)

答案 4 :(得分:0)

当查询数据库时,处理那里的null,使代码中的生活变得更容易

SQL示例

SELECT isNull(columnName, 0) FROM TABLENAME...

Select isNUll(columnName, 'N/A') FROM TABLENAME ...