Oledb No Value Given for an or more required parameters VB.NET

Oledb No Value Given for one or more required parameters 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:\DatabasePath\database.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: 'No value given for one or more required parameters.'

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

谢谢

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

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:\DatabasePath\Database.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