我从这个网站了解到使用参数更新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为号码,用户名为文本,密码为文本。我不知道我的错误在哪里。你能告诉我一路吗?感谢。
答案 0 :(得分:0)
请尝试以下方法在参数周围添加双引号。
query = "UPDATE Users SET Password = """@password""" WHERE ID = """@empID""""