VB.net如果块抛出错误

时间:2011-03-22 19:44:36

标签: vb.net null

我的代码块在下面。事实证明,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

3 个答案:

答案 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)不同