im программирование формы «Изменить пароль» на VB.net. Это код кнопки OK:Ошибка SQL UPDATE в VB.net и ACCESS
Private Sub BT_CambiaPass_OK_Click(sender As Object, e As EventArgs) Handles BT_CambiaPass_OK.Click
Dim strSql As String = "UPDATE Usuario SET Password= ? WHERE NombreUsuario= ? AND Password= ?"
Using cmd As New OleDb.OleDbCommand(strSql, conexion)
cmd.Parameters.AddWithValue("Password_New", CStr(TB_CambiaPass_NEW.Text))
cmd.Parameters.AddWithValue("NombreUsuario", CStr(NombreUsuario))
cmd.Parameters.AddWithValue("Password_Old", CStr(TB_CambiaPass_Old.Text))
Try
conectarse()
cmd.ExecuteNonQuery()
conexion.Close()
Catch ex As Exception
MsgBox("Contraseña antigua incorrecta")
MsgBox(ex.ToString())
End Try
End Using
End Sub
ex.tostring возвращение «Синтаксическая ошибка в инструкции UPDATE ...», когда отладить переменные правильны, но где ExecuteNonQuery получаю эту ошибку.
У меня есть другие функции, подобные этому, и они работают нормально. На самом деле я попробовал инструкцию SQL «UPDATE Usuario SET Password =» 123 «WHERE NombreUsuario =« Admin »AND Password = admin» в Access, и все идет хорошо.
Я не знаю, что случилось ...
К сожалению о моем примитивном английском!
Попробуйте добавить 'cmd.CommandType = CommandType.Text' после' Using' линии. – Jaxedin
Что такое объект NombreUsuario и откуда он? С уважением, –
попробовал cmd.CommandType = CommandType.Text, но с той же ошибкой. NombreUsuario получен из формы входа в систему в начале программы. Является общедоступной переменной как строка и содержит имя пользователя. При отладке переменная в порядке. – Gonzalo