忘记密码asp.net
这是关于忘记密码。面临的错误是索引超出此语句的范围“如果ds.Tables(0).Rows.Count>0 Then”忘记密码asp.net,asp.net,vb.net,Asp.net,Vb.net,这是关于忘记密码。面临的错误是索引超出此语句的范围“如果ds.Tables(0).Rows.Count>0 Then” Dim com作为新的MySqlCommand Dim dr作为MySqlDataReader 康涅狄格州公开赛 将查询设置为字符串 query=“从userdetail中选择密码、客户名称,其中Email=@Email” com=新的MySqlCommand(查询,连接) com.Parameters.AddWithValue(“@Email”,Email.Text) dr=
Dim com作为新的MySqlCommand
Dim dr作为MySqlDataReader
康涅狄格州公开赛
将查询设置为字符串
query=“从userdetail中选择密码、客户名称,其中Email=@Email”
com=新的MySqlCommand(查询,连接)
com.Parameters.AddWithValue(“@Email”,Email.Text)
dr=com.ExecuteReader
如果dr(0).ToString>0,则
Dim Smtp_服务器作为新的SmtpClient
将电子邮件设置为新邮件消息()
Smtp_Server.UseDefaultCredentials=False
Smtp_Server.Credentials=新的网络凭据(“xxx”、“xxx”)
Smtp_Server.Port=587
Smtp_Server.EnableSsl=True
Smtp_Server.Host=“Smtp.gmail.com”
e_mail=New MailMessage()
e_mail.From=新邮件地址(“xxx”)
e_mail.To.Add(Email.Text)
e_mail.Subject=“您的密码详细信息”
e_mail.IsBodyHtml=True
e_mail.Body=“您好,
请检查您的登录详细信息
您的用户名:&
Convert.ToString(ds.Tables(0).Rows(0)(“CustomerName”)&“
您的密码:&
转换.ToString(ds.表(0).行(0)(“密码”)&“
”
Smtp_服务器。发送(电子邮件)
其他的
Label7.Text=“您输入的电子邮件不存在”
终点
康涅狄格州关闭
我的数据库设计:
用户ID、密码、客户名称、联系人、电子邮件、状态您需要填充
ds
,我假设这是一个数据集
Dim queryString As String =
"select Password, CustomerName from userdetail where Email = @Email"
Dim cmd As SqlCommand = conn.CreateCommand()
Dim da As New SqlDataAdapter()
cmd.Parameters.AddWithValue("@Email", Email.Text)
cmd.CommandText = queryString
da.SelectCommand = cmd
Dim ds As New DataSet()
conn.Open()
da.Fill(ds)
然后可以检查数据集中的记录。您还需要确保以下各项适用:
电子邮件
字段是唯一的好的,您已经更改了问题,现在您被
MySqlDataReaders
和DataSet
MySqlDataReader
解决方案应该更像
Using cn As New MySqlConnection("YOURCONNECTIONSTRING")
cn.Open()
Using cmd As New MySqlCommand("select Password, CustomerName from userdetail where Email = @Email", conn)
cmd.Parameters.AddWithValue("@Email", Email.Text)
Dim dr As MySqlDataReader
dr = cmd.ExecuteReader
If dr.Read() Then
'Did find a record to access the fields use = dr("FieldName").ToString()
Else
'didnt find a record
End If
dr.Close()
dr = Nothing
End Using
End Using
使用
将为您处理命令和连接
然而,我还没有测试过这一点,所以强调“看起来更像”,所有这些都表明大卫的评论是完全正确的。在电子邮件中发送密码从来都不是好事 那么看来
ds.Tables
是空的。什么是ds
,您在哪里填充它?它似乎与您的SQL交互没有任何关系。此外,您似乎正在以纯文本形式存储用户密码。切勿以纯文本形式存储用户密码。您还通过电子邮件向用户发送密码。永远不要用电子邮件发送密码。这对你的用户是非常不负责任的。如果dr(0)。ToString>0,那么调用它是毫无意义的,并且在关闭连接后调用它,而不检查是否有记录,将一次又一次地被刷新。但我还是不明白你说的抛出异常的那条线在哪里。当然不是在上面贴的代码中。那么在你的代码中da是什么?:-)还要注意的是,他/她与MySql@Steve,很好-转换时我只抓取了一部分c代码,谢谢大家。稍后我将实现密码生成。
Using cn As New MySqlConnection("YOURCONNECTIONSTRING")
cn.Open()
Using cmd As New MySqlCommand("select Password, CustomerName from userdetail where Email = @Email", conn)
cmd.Parameters.AddWithValue("@Email", Email.Text)
Dim dr As MySqlDataReader
dr = cmd.ExecuteReader
If dr.Read() Then
'Did find a record to access the fields use = dr("FieldName").ToString()
Else
'didnt find a record
End If
dr.Close()
dr = Nothing
End Using
End Using