MS Access更新问题

时间:2015-04-20 22:53:54

标签: 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 " & 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.OleDBException:Update语句中的语法错误 我有一个表ID为号码,用户名为文本,密码为文本。我不知道我的错误在哪里。你能告诉我一路吗?感谢。

1 个答案:

答案 0 :(得分:0)

请尝试以下方法在参数周围添加双引号。

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