2011-03-22 79 views
0

我的代码块在下面。事实证明,rdrCurrentRate.GetString(12)是一个空值,但代码块会引发错误。 “数据为空,此方法或属性不能在空值上调用。”VB.net如果块抛出错误

我的本意是写 “如果rdrCurrentRate.GetString(12)NOT NULL,则sCurrentRateType = rdrCurrentRate.GetString(12)”

缺少什么我在这里?

   If Not String.IsNullOrEmpty(rdrCurrentRate.GetString(12)) Then 
        sCurrentRateType = rdrCurrentRate.GetString(12) 
       End If 
+0

什么是错误? – 2011-03-22 19:46:27

+0

“数据为空,此方法或属性不能在空值上调用。” – user279521 2011-03-22 19:47:45

回答

3

你可能想使用IsDBNull方法来代替:

If Not rdrCurrentRate.IsDBNull(12) Then 
    sCurrentRateType = rdrCurrentRate.GetString(12) 
End If 

空值不受null在数据读取器为代表,但不是一个特殊的DBNull值。 IsDBNull方法将检查列是否表示这样的值。

0

试试这个:

If IsDBNull(rdrCurrentRate.GetString(12))=false Then 
        sCurrentRateType = rdrCurrentRate.GetString(12)     
End If 

希望这个作品。

+0

关闭,但GetString()方法的返回类型为“string”,它永远不会匹配DbNull – 2011-03-22 19:52:12

0

我在考虑2可能性

1-例外,在rdrCurrentRate.GetString

2- rdrCurrentRate.GetString返回的DBNull值,这是不一样的没有任何凸起(或空)