2009-04-22 65 views
0

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

我已经试过

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

如果存储在数据库中的值是这不工作,要么(如亚音速不使用可空类型(如适用)ActiveRecord的)

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

0,那么这将无济于事:

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

DateTime字段也会出现同样的问题也是如此。

回答

1

发现了如何做到这一点。亚音速对所获得的价值作为对象,让空校验的方法:

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

尝试:

如果(数据== System.DBNull)

+0

除了不会编译。你的意思是要么{数据== System.DBNull.Value}或{数据是System.DBNull}。 – configurator 2009-04-22 15:04:47

+0

是的,我不得不承认,我写得很快,没有想到它。 – jgallant 2009-04-22 15:33:29

0

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

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

的DBNull是价值的空列。

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

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

如果(读者[ “colname的”)== DBNull.Value)

0

当查询数据库处理空在那里,让你的生活中的代码

SQL例如

容易得多
SELECT isNull(columnName, 0) FROM TABLENAME... 

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