我有一个查询,使用count()
检查某个类型的记录数。
select count(*) from abc where date="some value"
在这里,我的查询可能会返回null
或DBNull
吗?我应该检查一下吗?
答案 0 :(得分:5)
我不这么认为:它可以返回0或更大,因为你在计算。
NULL
将是一个错误的结果,因为没有结果 没有结果。
答案 1 :(得分:3)
不,它总会返回大于或等于0
的数字。
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您使用的是ExecuteScalar,我认为该调用将检索null而不是DbNull对象。
为了总是收到一个值,我用来做的是封装我的请求: SELECT ISNULL((SELECT COUNT(date)FROM abc WHERE date =“some value”),0)
塞尔
答案 4 :(得分:0)
您应该检查DbNull
,因为它是面向数据库的。
请参阅此answer
答案 5 :(得分:0)
这就是我的所作所为:
if (rdr.HasRows)
{
rdr.Read();
if (rdr["MyField"] != DBNull.Value)
{
bla bla....
}
所以,请检查DBNull。