Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我的代码有问题吗?_Sql_Vb.net_Ms Access_Oledbcommand - Fatal编程技术网

Sql 我的代码有问题吗?

Sql 我的代码有问题吗?,sql,vb.net,ms-access,oledbcommand,Sql,Vb.net,Ms Access,Oledbcommand,我的代码有问题吗?我遇到“从类型'DBNull'到类型'String'的转换无效”错误 调用的函数(GetNoofHoursOfTImeIn): 代码隐藏: txtPresentDays.Text = ClsAttendance.GetNoofHoursofTImeIn(EmployeeID.Text, MyDateString, MyDateString2).Rows(0).Item("THour") 我知道这个错误很常见,但直到现在我还不太清楚我是如何得到这个错误的 谢谢你的启发 当零个

我的代码有问题吗?我遇到“从类型'DBNull'到类型'String'的转换无效”错误

调用的函数(GetNoofHoursOfTImeIn):

代码隐藏:

 txtPresentDays.Text = ClsAttendance.GetNoofHoursofTImeIn(EmployeeID.Text, MyDateString, MyDateString2).Rows(0).Item("THour")
我知道这个错误很常见,但直到现在我还不太清楚我是如何得到这个错误的


谢谢你的启发

当零个记录与条件匹配时,您将得到一个空值。您可以使用
iif
功能将该值转换为零:

SELECT IIF(SUM(No_of_Hour) Is Null, 0, SUM(No_of_Hour)) ...

@ProgrammingDreamer:对不起,我在读一篇文章,其中关于
isnull
如何在Access中工作的信息是错误的。您可以改用
iif
功能。我更正了上面的代码。好了,我不再出错了。但我也没有检索任何数据。我强烈感觉数据库数据和DateTimePickers值之间的日期格式不匹配。非常感谢Guffa爵士的代码,我相信它将在未来解决更多的错误!小结:几乎没有“IIf”合适的实例-使用“If”运算符。@DaveDoknjas:你是说
IIf
不合适吗?我找不到任何支持它的东西。@ProgrammingDreamer:当您使用参数时,您不必担心格式问题,因为数据库驱动程序应该处理这些问题。首先检查方法中是否有正确的
DateTime
值。
SELECT IIF(SUM(No_of_Hour) Is Null, 0, SUM(No_of_Hour)) ...