2016-04-02 2 views
-1
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

Конечно, вы проверили в своей базе данных программы, если в таблице Login указан этот столбец. В противном случае вы бы никогда не опубликовали этот вопрос правильно? – Steve

+1

зачислить ученика по имени «Чарльз Д'Артаньян» или «Майк О'Тул» и посмотреть, почему SQL-параметры являются обязательными – Plutonix

ответ

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 
Смежные вопросы