2016-07-31 6 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

それはまだそれがRDBMSはこのどちらが同じ –

+0

でエラーを発生させますか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –

答えて

0


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

PASSWORDウィル私はそれの前に一重引用符を持ち、その後ろに一重引用符はありません。

に変更し、それを:
"UPDATE Administretor SET PASSWORD='" & txtNewPass.Text & "' where ...
お知らせここに余分な単一引用符---------------------------- ------------^

+0

adepterとのやり方を教えてもらえますか –

+0

コードを変更して、私が見せた場所に余分な一重引用符を追加してください。 'アペプター 'とはどういう意味ですか? –

+0

それでも同じエラーが発生する –

1

2つのエラー

"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から直接実行しているときにクエリの生成内容とそのエラーを表示してください。

関連する問題