问题描述
这是登录界面的部分代码,登录输入用户名密码时只有数据库第一行的数据可以登录,其他行的提示密码错误,删除第一行之后,第二行就可以登录了,其他的还是不可以。请大家帮忙看下时哪个语句出错了谢谢protectedvoidButton1_Click(objectsender,EventArgse){Session["value"]=txt1.Text;SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["DB"].ConnectionString);stringsql="selectUsername,PasswordfromUsers";SqlCommandcmd=newSqlCommand(sql,conn);conn.Open();dr=cmd.ExecuteReader();if(dr.Read()&&txt1.Text==dr[0].ToString()&&txt2.Text==dr[1].ToString()){Response.Redirect("petmsg.aspx");}else{txt1.Text="";txt2.Text="";lblMsg.Text="账号密码错误请重新输入!";}dr.Close();conn.Close();}protectedvoidButton2_Click(objectsender,EventArgse){Response.Redirect("注册.aspx");}}
解决方案
解决方案二:
if(dr.Read()&&txt1.Text==dr[0].ToString()&&txt2.Text==dr[1].ToString()){Response.Redirect("petmsg.aspx");}这段代码明显不执行当读取第一条的只默认读的第一条数据dr.read返回的值是读取的第一行的值所以
解决方案三:
stringsql="selectUsername,PasswordfromUsers";第一:sql没有写对改成:selecttop1Username,PasswordfromUsers第二:if(dr.Read()){stringu=dr["Username"].ToString()stringp=dr["Password"].ToString())if(txt1.Text==u.tostring()&&txt2.Text==p.tostring()){Response.Redirect("petmsg.aspx");}else{txt1.Text="";txt2.Text="";lblMsg.Text="账号密码错误请重新输入!";}}