【问题标题】:Change password by connecting to mysql database连接mysql数据库修改密码
【发布时间】:2014-10-24 18:17:31
【问题描述】:

“adapter = New MySqlDataAdapter("UPDATE user SET Password WHERE Password ='" & txtpassword.Text & "'") "行中有错误

我该如何解决这个问题?

Private Sub getdbdata()

    Try
        mysqlconn = New MySqlConnection("server=localhost;username=root;database=bank")

        dataset = New DataSet
        adapter = New MySqlDataAdapter("UPDATE user SET Password WHERE Password ='" & txtpassword.Text & "'")
        adapter.Fill(dataset, "user")

        mysqlconn.Open()

        reader = command.ExecuteReader

        If reader.HasRows Then
            Form1.Show()
            Me.Visible = False

        Else
            MessageBox.Show("Password change unsuccessful.")
        End If


        reader.Close()
        mysqlconn.Close()

    Catch ex As MySqlException
        MessageBox.Show(ex.Message)

    End Try

End Sub

【问题讨论】:

  • 错误说明了什么?除了易受 SQL 注入攻击之外,我看不出它有什么问题。也许您的密码包含单引号? :)
  • 如果我不得不猜测,因为您没有费心提供系统提供给您的错误消息,那么我会说“用户”是保留字,需要如果使用标识符,则进行转义。在 MySQL 中,您可以通过将值包装在坟墓 (`) 中来做到这一点。

标签: vb.net mysqlconnection


【解决方案1】:

主要问题在于update Query.的语法

所以在您的代码中进行此更改:

    dataset = New DataSet
    adapter = New MySqlDataAdapter("UPDATE user SET Password = '" & txtNewpassword.Text & "' " & _
                                   "WHERE userName = '" & txtuser.Text & "' and " & _
                                   "Password ='" & txtOldpassword.Text & "'")
    adapter.Fill(dataset, "user")

现在代码表示已满,它将重置密码为 txtNewpassword 中的用户名,用户名在 txtuser 并且密码在 txtOldpassword 中匹配

【讨论】:

    【解决方案2】:
    Imports MySql.Data.MySqlClient
    Public Class Settings
        Dim con As New MySqlConnection("host =localhost;user id=root;password=;database=cidb")
        Dim cmd As New MySqlCommand
        Dim dr As MySqlDataReader
        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            con.Open()
            cmd.Connection = con
            cmd.CommandText = "select * from usertbl where uname='" & user.Text & "'and upassword= '" & Pword.Text & "'"
    
            dr = cmd.ExecuteReader
            If dr.HasRows Then
                Settings()
            Else
                MsgBox("Invalid Username or Password!")
            End If
    
        End Sub
    
     Private Sub Settings()
            Dim con As New MySqlConnection("host =localhost;user id=root;password=;database=cidb")
            Dim cmd As New MySqlCommand
            con.Open()
            cmd.Connection = con
            cmd.CommandText = "update usertbl set upassword='" & NewPword.Text & "' where uname= '" & usertxt.Text & "'"
            cmd.ExecuteNonQuery()
                MsgBox("You're successfully change your Password!")
                usertxt.Text = " "
                Pwordtxt.Text = " "
                Newuser.Text = " "
               con.Close()
        End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多