Sql 我的代码有问题吗?
我的代码有问题吗?我遇到“从类型'DBNull'到类型'String'的转换无效”错误 调用的函数(GetNoofHoursOfTImeIn): 代码隐藏: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") 我知道这个错误很常见,但直到现在我还不太清楚我是如何得到这个错误的 谢谢你的启发 当零个
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)) ...