我有一个整数列,可能有一个数字或没有分配给它(即在数据库中为null)。如何检查它是否为空?
我试过了
if(data.ColumnName == null)
{
...
}
这也不起作用(因为SubSonic不为ActiveRecord使用可空类型(适用时))
if(data.ColumnName.HasValue)
{
...
}
如果存储在数据库中的值为0,那么这将无济于事:
if(data.ColumnName == 0 /* or 0x000? */)
{
...
}
DateTime字段也可能出现同样的问题。
答案 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 ...