이것은 비밀 번호 분실에 관한 것입니다. 오류 직면이 문에 대한 범위를 벗어난 인덱스를 "만일 ds.Tables (0) .Rows.Count을> 0 그런 다음"비밀 번호 분실 asp.net
Dim com As New MySqlCommand
Dim dr As MySqlDataReader
conn.Open()
Dim query As String
query = "select Password, CustomerName from userdetail where Email = @Email"
com = New MySqlCommand(query, conn)
com.Parameters.AddWithValue("@Email", Email.Text)
dr = com.ExecuteReader
If dr(0).ToString > 0 Then
Dim Smtp_Server As New SmtpClient
Dim e_mail As New MailMessage()
Smtp_Server.UseDefaultCredentials = False
Smtp_Server.Credentials = New Net.NetworkCredential("xxx", "xxx")
Smtp_Server.Port = 587
Smtp_Server.EnableSsl = True
Smtp_Server.Host = "smtp.gmail.com"
e_mail = New MailMessage()
e_mail.From = New MailAddress("xxx")
e_mail.To.Add(Email.Text)
e_mail.Subject = "Your Password Details"
e_mail.IsBodyHtml = True
e_mail.Body = "Hi, <br/>Please check your Login Detailss<br/><br/>Your Username: " &
Convert.ToString(ds.Tables(0).Rows(0)("CustomerName")) & "<br/><br/>Your Password: " &
Convert.ToString(ds.Tables(0).Rows(0)("Password")) & "<br/><br/>"
Smtp_Server.Send(e_mail)
Else
Label7.Text = "The Email you entered not exists"
End
conn.Close()
내 데이터베이스 설계 : 사용자 아이디, 비밀번호, CUSTOMERNAME, 연락처, 이메일, 상태
그러면 'ds. 테이블'이 비어있는 것 같습니다. 'ds '란 무엇이며 어디에서 채우고 있습니까? 그것은 당신의 SQL 상호 작용에 어떤 식 으로든 관계가있는 것처럼 보이지 않습니다. 또한 사용자 암호를 일반 텍스트로 저장하는 것 같습니다. *** 사용자 암호를 일반 텍스트로 저장하지 마십시오. *** 사용자에게 암호를 전자 메일로 보내고 있습니다. *** 비밀번호를 이메일로 보내지 마십시오. *** 그것은 사용자에게 무책임한 일입니다. – David
호출 _If dr (0) .ToString> 0 그런 다음 레코드가 반복해서 끊어 지는지 확인하지 않고 연결을 닫은 후에는 의미가 없으며 호출합니다. 그러나 아직도 나는 예외를 던지고있는 라인이 어디에 있는지 이해하지 못한다. 물론 위에 게시 된 코드에는 없습니다. – Steve