vb.net(附加信息:'where子句'中的未知列'Secret_question')

时间:2016-04-02 13:53:46

标签: mysql vb.net

Imports MySql.Data.MySqlClient
Public Class Forgot_password
    Private Sub GroupBox1_Enter(sender As Object, e As EventArgs) Handles GroupBox1.Enter

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim con As New MySqlConnection("host=localhost;username=root; password=godzilla408421;database=program")
        Dim cmd As New MySqlCommand
        Dim dr As MySqlDataReader

        con.Open()
        cmd.Connection = con
        cmd.CommandText = "SELECT * FROM program.login where Username ='" & useridtxt.Text & "' and Secret_question='" & questiontxt.Text & "' and answer='" & answertxt.Text & "'"
        dr = cmd.ExecuteReader <<<<(HERE IS MY PROBLEM,IT TELLS ME THAT,"UNKNOW COLUMN'SECRET_QUESTION IN WHERE CLAUSE',PLEASE PLEASE PLEASE HELP"0>>>>
        If Not dr Is Nothing Then
            dr.Read()
            passwordtxt.Text = dr(1)
            dr.Close()
        Else
            MsgBox("Usename or password doesnt match")


        End If
    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

首先检查你的表是否有Secret_question字段,也许你把它复数像Secret_questions。然后最好修改你的代码,如下所示

cmd.CommandText = "SELECT * FROM program.login where Username =?Username and Secret_question=?Secret_question and answer=?answer;"
 cmd.Parameters.AddWithValue("?Username", useridtxt.Text.Trim())
 cmd.Parameters.AddWithValue("?Secret_question", questiontxt.Text.Trim())
 cmd.Parameters.AddWithValue("?answer", answertxt.Text.Trim())
 dr = cmd.ExecuteReader