我有一个查询,它检查有多少特定类型的记录使用count()
.
select count(*) from abc where date="some value"
在这里,我的查询是否有可能返回null
或DBNull
?我应该检查他们吗?
我有一个查询,它检查有多少特定类型的记录使用count()
.
select count(*) from abc where date="some value"
在这里,我的查询是否有可能返回null
或DBNull
?我应该检查他们吗?
我不这么认为:它可以返回零或更大,因为你在数。
NULL
将是一个错误的结果,因为没有结果是零结果。
不,它总是会返回一个大于或等于的数字0
。
如果您使用的是 ExecuteScalar,我认为该调用将检索 null 而不是 DbNull 对象。
为了始终接收一个值,我用来封装我的请求:SELECT ISNULL((SELECT COUNT(date) FROM abc WHERE date = "some value"), 0)
哔叽
您应该检查DbNull
它是面向数据库的。
看到这个答案
这就是我所做的:
if (rdr.HasRows)
{
rdr.Read();
if (rdr["MyField"] != DBNull.Value)
{
bla bla....
}
所以是的,检查 DBNull。