当前位置:编程学习 > C#/ASP.NET >>

asp制作网页登录界面数据库出错

这是登录界面的部分代码,登录输入用户名密码时只有数据库第一行的数据可以登录,其他行的提示密码错误,删除第一行之后,第二行就可以登录了,其他的还是不可以。请大家帮忙看下时哪个语句出错了 谢谢

 protected void Button1_Click(object sender, EventArgs e)
    {

        Session["value"] = txt1.Text;
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DB"].ConnectionString);

        string sql = "select Username,Password from Users";

        SqlCommand cmd = new SqlCommand(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();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Redirect("注册.aspx");
    }
} --------------------编程问答-------------------- if (dr.Read() && txt1.Text == dr[0].ToString() && txt2.Text == dr[1].ToString())
  {
  Response.Redirect("petmsg.aspx");
  }


这段代码 明显不执行  当读取第一条的只默认读的第一条数据
dr.read 返回的值 是读取的第一行的值  所以 --------------------编程问答-------------------- string sql = "select Username,Password from Users";

第一:
sql 没有写对

改成:select top 1 Username,Password from Users

第二:
if (dr.Read())
  {

   string u = dr["Username"].ToString() 

   string p = dr["Password"].ToString())

   if(txt1.Text==u.tostring() && txt2.Text == p.tostring())
   {
      Response.Redirect("petmsg.aspx");
   }
   else
   {
     txt1.Text = "";
     txt2.Text = "";
     lblMsg.Text = "账号密码错误请重新输入!";

   }
  }
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,