我的代码块在下面。事实证明,rdrCurrentRate.GetString(12)是一个空值,但代码块会引发错误。 “数据为空。无法在空值上调用此方法或属性。”
我的意图是写“如果rdrCurrentRate.GetString(12)是非NULL,那么sCurrentRateType = rdrCurrentRate.GetString(12)”
我在这里缺少什么?
If Not String.IsNullOrEmpty(rdrCurrentRate.GetString(12)) Then
sCurrentRateType = rdrCurrentRate.GetString(12)
End If
答案 0 :(得分:3)
您可能希望改为使用IsDBNull
方法:
If Not rdrCurrentRate.IsDBNull(12) Then
sCurrentRateType = rdrCurrentRate.GetString(12)
End If
数据阅读器中的null
不代表空值,而是代替特殊的DBNull
值。 IsDBNull
方法将检查列是否代表这样的值。
答案 1 :(得分:0)
试试这个:
If IsDBNull(rdrCurrentRate.GetString(12))=false Then
sCurrentRateType = rdrCurrentRate.GetString(12)
End If
希望这有效。
答案 2 :(得分:0)
我正在考虑两种可能性
1- rdrCurrentRate.GetString
中引发异常2- rdrCurrentRate.GetString返回一个DBNull值,该值与Nothing(或null)不同