我有一个程序,用户可以通过在文本框中输入旧密码并在单独的文本框中输入新密码来更新密码。
然后更新查询使用新密码更新数据库。
Try
If tbOldPassword.Text <> "" Then
For Each Row In ds.Tables("sqlAddNewDetails").Rows
If Row.Item(0) = gblstrUserID Then
If Row.Item(1) = tbOldPassword.Text Then
If tbPassword.Text = tbRePassword.Text Then
'Updates the database
sqlUpdate = ("UPDATE Users SET Password = '" & tbPassword.Text & "' WHERE userID = " & Row.Item(0))
Dim cmd As New OleDbCommand(sqlUpdate, con)
cmd.ExecuteNonQuery()
MsgBox("Password successfully changed")
Else : MsgBox("The passwords are not the same")
End If
Else : MsgBox("Invalid old password")
End If
End If
Next
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
但是,每次代码到达 cmd.ExecuteNonQuery() 时,它都会抛出一个错误,指出更新查询中存在语法错误。但是,如果我在 Microsoft Access 中使用此查询,它可以正常工作,因此更新查询本身可以正确编写。有什么问题?
注意:我在同一个 Sub 例程中的另一段代码中使用 UPDATE 查询,它在那里工作。它与此查询有关。
再次注意:如果我将更新查询更改为 UPDATE Users SET EMAIL = '" & tbPassword.Text & "' WHERE userID = " & Row.Item(0)" 它可以工作。关于密码的一些东西会引发该错误。