1

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

我试过了

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

这也不起作用(因为 SubSonic 不对 ActiveRecord 使用可为空的类型(如果适用))

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

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

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

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

4

5 回答 5

6

尝试:

如果(数据 == System.DBNull)

于 2009-04-22T11:20:23.560 回答
1

了解如何做到这一点。SubSonic 有一种将值作为对象获取以允许空检查的方法:

if(data.GetColumnValue("Column Name") == null)
{
    ...
}
于 2009-04-22T13:13:53.163 回答
0

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

if(data.IsNull("ColumnName")) { ... }
于 2009-04-22T11:24:19.510 回答
0

DBNull 是空列的值。

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

假设 SqlDataReader ...检查 null 是:

if (reader["colname") == DBNull.Value)

于 2009-04-22T12:20:13.307 回答
0

查询数据库时处理那里的空值,使您在代码中的生活更轻松

SQL 示例

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

或者

Select isNUll(columnName, 'N/A') FROM TABLENAME ...
于 2009-04-22T13:26:18.313 回答