我正在尝试将null值存储到date数据类型变量中。该值来自我的DataSet
,但我收到错误指定强制转换无效。这是我的代码:
Dim varTimeOut As Nullable(Of DateTime) = DSMemberAttendance.Tables("tblMemberAttendance").Rows(iCounter)("TimeOut")
有没有办法将空值存储到我的Date变量?我正在使用Visual Basic 2005.提前感谢。
答案 0 :(得分:2)
关于Stuarts的回答,下面的代码片段可以解决这个问题:
Dim varTimeOut As Nullable(Of DateTime)
If DSMemberAttendance.Tables("tblMemberAttendance").Rows(iCounter).IsNull("TimeOut") Then
varTimeOut = Nothing
Else
varTimeOut = DirectCast(DSMemberAttendance.Tables("tblMemberAttendance").Rows(iCounter)("TimeOut"), DateTime)
End If
如果这是有效的,请接受Stuarts的答案,因为他钉了它,我不想用借来的羽毛装饰自己。
答案 1 :(得分:1)
数据库代码不会为数据库中的NULL值返回Nothing。它改为返回一个特定的类型(我记得DBNull)。您需要专门检查数据库null(数据库字段上可能存在IsNull属性)并在这种情况下适当地设置Nullable,只有在Nullable包含有效日期时才将数据库值分配给Nullable。