数据为空此方法或属性无法调用Null值错误不断出现

时间:2016-02-22 21:38:54

标签: c# mysql sql null

我不知道为什么我一直收到错误 数据是空的。无法在Null值上调用此方法或属性。
继承人我的查询将获得2016年2月18日至2016年2月23日期间所有totalovertime的总和1:

 select sum(totalovertime) as totalovertime from timeinout where employeenumber = 1 and dateofin between 2016-02-18 and 2016-02-23

继承我的桌子:

 employeenumber | totalovertime | dateofin 
 1              | 1             | 2016-02-19
 1              | 1             | 2016-02-22

查询应返回2作为totalovertime,但错误仍然出现

但当我这样做时:

select sum(totalovertime) from timeinout where employeenumber = 1

此查询返回2并且那是正确的。

2 个答案:

答案 0 :(得分:1)

尝试对SUM内的值使用ISNULL()

SUM(ISNULL(totalovertime, 0))

这将检查totalovertime是否为null并将其替换为0,如果是,则SUM可以正确处理。

对于某些字段,您的DateOfIn也可能为NULL,而BETWEEN运算符会抛出您的错误,但不确定是否可以这样做(检查您的表格数据!)

答案 1 :(得分:1)

处理日期时,您需要用单引号将它们包围起来。否则,SQL会将2016-02-18解释为2016减去2减18.将查询更改为

select sum(totalovertime) as totalovertime 
from timeinout 
where employeenumber = 1 
and dateofin between '2016-02-18' and '2016-02-23'