2012-05-16 44 views
0

我期待根據用戶輸入進行數據庫調用。我使用的行是:從Web應用程序動態調用數據庫

general_read.CommandText = "SELECT * FROM general WHERE Business_Name = '" & business_name & "';"

BUSINESS_NAME被動態加載從:

Protected Sub btnLoad_Click(sender As Object, e As System.EventArgs) Handles btnLoad.Click 
    business_name = txtName.Text 

    dbConnect() 
    dbGet() 
    dbDisconnect() 
End Sub 

的錯誤正在被所示:

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

我假設它與在數據庫調用之前未設置的變量有關,但我不完全確定。

+0

'business_name'是全局聲明的嗎? – dpp

+0

您可以通過單步執行代碼來判斷。是否在「general_read.CommandText = ...」上失敗 – Yatrix

+0

是的,business_name是全局聲明的。問題是我只使用CommandText,並沒有設置連接字符串本身。 – Kruug

回答

1

我猜它的失敗上

general_read.CommandText = "SELECT * FROM general WHERE Business_Name = '" & business_name & "';"

,因爲這是你指定的代碼。如果是這種情況,那麼您沒有正確初始化SQLCommand對象。以下是正確顯示如何使用對象的所有重載構造函數的MSDN頁面。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx

如果BUSINESS_NAME爲null,異常也將當您嘗試來連接你的ComamndText字符串拋出。在該行上放置一個斷點並查看是否爲空。這就是你的問題所在。

希望這會有所幫助。如果該行沒有出現錯誤,請在代碼中包含它。

+0

是的,我忘了創建命令本身,我只是做了命令文本。 – Kruug

+1

我討厭那些一切看起來很好,但你錯過了一些東西的錯誤。很高興這有助於。 – Yatrix