0

実行時にこの関数でエラーが発生しました

Private Sub adultPay()
sql = "SELECT adultRate FROM roomType WHERE roomType = " & rumType.ToString & ""
connectDatabase()
Using da As New OleDb.OleDbDataAdapter(sql, con)
Using ds As New DataSet
Try
da.Fill(ds, "AdultRate") 'error here
Dim adultRate As String = ds.Tables("AdultRate").Rows(0).Item(0).ToString
Dim adultTotal As Integer = txtNoOfAdults.Text * Val(adultRate)
txtAdultTotal.Text = adultTotal.ToString
Catch ex As Exception
MessageBox.Show(ex.ToString, "error")
Clipboard.SetDataObject(ex)
End Try
DisconnectDB()
End Using
End Using
End Sub

この関数は、大人の数が入力されたときに、大人の合計テキストボックスの値を変更することになっています。エラーは以下のとおりです

System.Data.OleDb.OleDbException: No value given for one or more required parameters.
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
at Albergo.frmCheckIn.adultPay() in C:\Users\gman\Documents\Visual Studio 2008\Projects\Albergo\Albergo\frmCheckIn.vb:line 111

行111は、sub wea u find da.Fill(ds、 "AdultRate")の行です。

助けてください

4

2 に答える 2

0

私は実際に問題がどこにあるかを見つけました。roomtype は文字列として入力する必要があります。

sql = "SELECT adultRate FROM roomType WHERE roomType = '" & rumType.ToString & "'"

そしてそうではない

sql = "SELECT adultRate FROM roomType WHERE roomType = " & rumType.ToString & ""

助けてくれてありがとう

于 2013-02-06T18:19:41.140 に答える
0

テーブルの名前をWHERE条件として渡しています

それはあるはずです:

"SELECT adultRate FROM roomType WHERE roomType_columnName = " & rumType.ToString & ""
于 2013-02-04T13:12:08.840 に答える