The*_*TXI 3 vb.net asp.net date
存储过程返回有关用户记录的数据,包括上次登录日期的可空日期时间列.在尝试分配.Net日期变量时,哪一个是处理NULL值可能性的更好选择?
Try
_LastLogin = CDate(DT.Rows(0)("LastLogin"))
Catch ex As InvalidCastException
_LastLogin = Nothing
End Try
Run Code Online (Sandbox Code Playgroud)
要么
If DT.Rows(0)("LastLogin") Is DBNull.Value Then
_LastLogin = Nothing
Else
_LastLogin = CDate(DT.Rows(0)("LastLogin"))
End If
Run Code Online (Sandbox Code Playgroud)
编辑:我也忘记了使用TryParse的可能性
If Not Date.TryParse(DT.Rows(0)("LastLogin").ToString, _LastLogin) Then
_LastLogin = Nothing
End If
Run Code Online (Sandbox Code Playgroud)
哪个是NULL从数据库中处理可能值的首选方法?有没有比列出的三个更好的方法?
编辑#2:我注意到TryParse在尝试分配Nullable类型时该方法不能很好.
第二个代码片段更好.例外是针对特殊情况,而不是您预期会发生的情况.此外,意图更好.很明显,您期望DBNull成为可能的值,并且您希望相应地处理它.
此外,如果值不为null但不可解析,则可能会产生意外后果(尽管这可能永远不会发生).
| 归档时间: |
|
| 查看次数: |
1873 次 |
| 最近记录: |