我試圖在VB.net數據爲空。此方法或屬性不能被稱爲對空值 - if語句沒有奏效
SQL = "SELECT SUM(amount) FROM billing_payments WHERE invoice_sequence = '" & reader.GetString(0) & "';"
myCommand2.Connection = conn2
myCommand2.CommandText = SQL
reader2 = myCommand2.ExecuteReader
If reader2.Read Then
If Not IsDBNull(reader2.GetString(0)) Then
account_balance = (account_balance - reader2.GetString(0))
End If
End If
reader2.Close()
如果有數據返回,但在沒有工作正常運行這段代碼數據,我收到一條錯誤消息:
數據爲空。此方法或屬性不能在空值上調用
我已經嘗試在IF語句中添加以檢查數據是否爲NULL,但沒有奏效。
我是否在錯誤地添加了該內容?
問題是null在不同的上下文中意味着什麼。 IsDBNull()用於檢查一個字段是否爲空。 I.E.如果返回一行,但該行的特定列爲空。但爲了.net檢查,必須首先返回一行。如果你的sql根本沒有返回任何行,那麼沒有什麼可以.Read,因此IsDBNull函數沒有字段來檢查它是否爲空 – soohoonigan
是的,我明白你的意思了。那麼我能做些什麼呢? – charlie
就個人而言,我通常用「如果myReader不是Nothing並且還有myReader.Read()然後」開啓這些類型的塊「 – soohoonigan