2016-07-31 3 views
0

У меня есть код, который вызывает ошибку. Мне нужна ваша помощь, чтобы решить эту проблему.Решить ошибку в запросе обновления

Ошибка

Синтаксическая ошибка в заявлении обновления

Мой код:

Try 
    Dim conn As OleDbConnection = New OleDbConnection(My.Resources.ConnectionString) 
    Dim cmd As OleDbCommand 

    conn.Open() 

    Dim Sql As String = "select * from Administretor" 
    cmd = New OleDbCommand(Sql, conn) 

    Dim userE, userR As String 
    userE = txtOldPass.Text 

    Dim reder As OleDbDataReader = cmd.ExecuteReader() 

    While reder.Read() 
     userR = reder.Item(0) 
    End While 

    If userE = userR Then 
     If txtNewPass.Text = txtNewConfromPass.Text And txtNewConfromPass.Text <> "" And txtNewPass.Text <> "" Then 
      Sql = "UPDATE Administretor SET PASSWORD='" & txtNewPass.Text & " where LogIn_id=" & txtOldPass.Text & "" 

      Dim cmd0 As OleDbCommand = New OleDbCommand(Sql, conn) 
      cmd0.ExecuteNonQuery() 
     Else 
      MsgBox("Make sure that you have entered new password in both text Box and they both are same...!") 
     End If 
    Else 
     MsgBox("Enter the correct Username") 
    End If 

    MsgBox("Done 2") 
Catch ex As OleDbException 
    MsgBox(ex.Message) 
End Try 
+0

Он по-прежнему вызывает ошибку, это то же самое –

+0

Какие РСУБД это? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –

ответ

0

В этой части
"UPDATE Administretor SET PASSWORD='" & txtNewPass.Text & " where ...

ВВЕСТИ ПАРОЛЬ Виль Перед этим у меня есть одна цитата, и после нее нет отдельной цитаты.

Изменить это:
"UPDATE Administretor SET PASSWORD='" & txtNewPass.Text & "' where ...
Обратите внимание на дополнительный сингл цитатой здесь ---------------------------- ------------^

+0

Можете ли вы рассказать мне, как это сделать с adepter –

+0

Просто измените свой код, добавьте дополнительную одинарную цитату, где я показал вам. Что вы подразумеваете под «adepter»? –

+0

Он по-прежнему вызывает ошибку, это то же самое –

1

Две ошибки

"UPDATE Administretor SET PASSWORD='" & txtNewPass.Text & " where LogIn_id=" & txtOldPass.Text & "" 
                 ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
                  |     | 
           Missing single quote here---+     | 
                       | 
    LogIn_Id will never equal the old password--------------------------------+ 

Но помимо простых синтаксических ошибок у вас есть огромная инъекции SQL уязвимости от построения SQL из частей, включая ввод данные пользователя ,

0

Добавить этот синтаксис:

Sql = "UPDATE Administretor SET PASSWORD='" & txtNewPass.Text & " where LogIn_id=" & txtOldPass.Text & "" 

Clipboard.SetText(Sql) 

запрос будет в буфер обмена. Запустите его на SQL (в зависимости от того, что вы используете) и посмотрите, выполняется ли запрос без проблем?

Пожалуйста, покажите нам, что такое генерация запроса и какая ошибка возникает при запуске непосредственно из SQL.

Смежные вопросы