Sql MS访问更新问题

Sql MS访问更新问题,sql,vb.net,Sql,Vb.net,我从这个网站学到了使用参数更新MS Access数据库的正确方法,但现在我遇到了另一个问题。与使用SQL Server相比,使用Access作为数据库似乎效率和用户友好性都不高。这是我的代码: Private Sub btnUpdatePass_Click(sender As System.Object, e As System.EventArgs) Handles btnUpdatePass.Click If MessageBox.Show("Are you sure that

我从这个网站学到了使用参数更新MS Access数据库的正确方法,但现在我遇到了另一个问题。与使用SQL Server相比,使用Access作为数据库似乎效率和用户友好性都不高。这是我的代码:

Private Sub btnUpdatePass_Click(sender As System.Object, e As System.EventArgs) Handles btnUpdatePass.Click
        If MessageBox.Show("Are you sure that " & txtEmpID.Text & " is the Employee ID you want to change password?", "ALERT", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = Windows.Forms.DialogResult.Yes Then
            ChangePassword(Me.txtEmpID.Text, txtChangePass.Text)
        End If
End Sub

Public Sub ChangePassword(empID As Object, password As Object)
    Try
        cnn.Open()
        query = "UPDATE Users SET Password = @password WHERE ID = @empID"
        cmd = New OleDbCommand(query, cnn)
        cmd.Parameters.AddWithValue("@password", password)
        cmd.Parameters.AddWithValue("@empID", empID)
        cmd.ExecuteNonQuery()
        MessageBox.Show("Successfully changed password.", "CHANGE PASSWORD", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Catch ex As Exception
        GetErrorMessage(ex)
    Finally
        CloseConnection()
    End Try
End Sub
每当我按下btnUpdate时,我都会收到一条错误消息: System.Data.OleDB.OLEDBEException:Update语句中出现语法错误
我有一个ID为数字、用户名为文本、密码为文本的表。我不知道我的错误在哪里。你能再给我指一次路吗?谢谢。

请尝试在参数周围加上双引号

query = "UPDATE Users SET Password = """@password""" WHERE ID = """@empID""""

检查用户和密码等保留字。“密码”是Access SQL中的保留字。用括号转义:
“更新用户设置[密码]=…
此外,密码应该是散列的,而不是以明文形式保存。为什么子对象的参数是严格的?再次启用
选项。您非常及时,知识非常渊博。您以前和这次都曾帮助过我。如果我可以再次占用您的时间,并帮助我如何进行散列操作。这是一些吗我必须在MS ACCESS或程序中执行的操作?您能举个例子吗?谢谢!双引号或三引号?这是不正确的。参数占位符不需要任何类型的引号。