Oledb没有为VB.NET中的一个或多个必需参数给定值



有人能告诉我我的代码出了什么问题吗?我在这里是一个完全的新手,这是我很长一段时间以来第一次尝试写东西,

下面的代码应该更新访问数据库中的两个字段

Private Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click
'connects application to database
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:DatabasePathdatabase.accdb"
Dim SqlString As String = "update SaintStaff set [StaffHours]=[@CAHours],[RecordedTime]=[@Time] where [StaffName] = " & Label2.Text & ""
'updates record in  SaintStaff table.
Using conn As New OleDbConnection(ConnString)
conn.Open()
Using cmd As New OleDbCommand(SqlString, conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("[@CAHours]", Label6.Text)
cmd.Parameters.AddWithValue("[@Time]", Label10.Text)
cmd.ExecuteNonQuery()
End Using
conn.Close()
End Using
End Sub

我收到以下错误System.Data.OleDb.OleDbException:"未为一个或多个必需参数给定值。">

它突出显示了每一行的cmd文本,我不知道我做错了什么,有人能帮忙吗?

谢谢

这个问题由MatSnow和olivier jacot在评论中回答,正确的代码如下

Private Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click
'connects application to database
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:DatabasePathDatabase.accdb"
Dim SqlString As String = "update SaintStaff set StaffHours = @CAHours, RecordedTime = @Time where StaffName = @staffname "
'updates record in  SaintStaff table.
Using conn As New OleDbConnection(ConnString)
conn.Open()
Using cmd As New OleDbCommand(SqlString, conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.Add("@CAHours", OleDbType.VarChar).Value = Label6.Text
cmd.Parameters.Add("@Time", OleDbType.VarChar).Value = Label10.Text
cmd.Parameters.Add("@Staffname", OleDbType.VarChar).Value = Label2.Text
cmd.ExecuteNonQuery()
End Using
conn.Close()
End Using
End Sub

最新更新