2011-03-22 82 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值,這是不一樣的沒有任何凸起(或空)