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 行是您找到的子程序中的 da.Fill(ds, "AdultRate")

请帮忙

4

2 回答 2

0

您将表的名称作为 WHERE 条件传递

它应该是:

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

我实际上发现了问题所在。房间类型需要作为一个字符串,例如

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

并不是

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

谢谢大家的帮助

于 2013-02-06T18:19:41.140 回答