0

ユーザー入力に基づいてデータベース呼び出しを行うことを検討しています。私が使用している行は次のとおりです。

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.

データベース呼び出しが行われる前に変数が設定されていないことに関係があると思いますが、完全にはわかりません。

4

1 に答える 1

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 文字列を連結しようとすると、例外もスローされます。その行にブレークポイントを置き、null を確認します。そこに問題があります。

お役に立てれば。その行でエラーが発生していない場合は、エラーが発生している場所にコードを含めてください。

于 2012-05-16T13:40:26.493 に答える