ASP.NET 的页面跳转问题。

来源:百度知道 编辑:UC知道 时间:2024/04/26 05:18:33
我已经把数据库等各方面代码写好,只是按登录按钮跳转的时候依然还在本页面,就是到不了第二个页面,请问这是怎么一回事呀?
我已经写了我认为改写的东西,代码如下:

private void btnsumbit_Click(object sender, System.EventArgs e)
{
SqlConnection con=new SqlConnection("database=users;server=.;uid=sa;pwd=;");
con.Open();
SqlCommand cmd=new SqlCommand("select username,userpwd from users",con);
//SqlDataAdapter da=new SqlDataAdapter("select * from users where username='"+this.labusername.Text+"' and userpwd='"+this.labuserpwd.Text+"'",con);
SqlDataReader sdr=cmd.ExecuteReader();
if(sdr.Read())
{
if(this.txtusername.Text==sdr.GetString(0)&&this.txtuserpwd.Text==sdr.GetString(1))
{
this.Response.Redirect("bind.aspx");

}
else
{
this.labmessage.Text="登录不成功";
this.Response.Redirect("login.aspx");
}

SqlCommand cmd=new SqlCommand("select username,userpwd from users",con);
这个select语句是查询的所有用户信息.
if(sdr.Read())
{
if(this.txtusername.Text==sdr.GetString(0)&&this.txtuserpwd.Text==sdr.GetString(1))
{
this.Response.Redirect("bind.aspx");

}
在你这个代码段中,你只是用查询到的第一条用户信息与当前的拥护名字和输入的密码做比较.所以会……
解决方法
string sql = select username,userpwd from users Where username=\'"
sql += this.labusername.Text;
sql += "\' And userpwd = \'";
sql += this.labuserpwd.Text;
sql += '\' ";
SqlCommand cmd=new SqlCommand(sql,con);
if(sdr.Read())
{
this.Response.Redirect("bind.aspx");
}
else
{
this.labmessage.Text="登录不成功";
this.Response.Redirect("login.aspx");
}

不过这样必须注意方法用户输入的sql注入攻击。希望对你能有帮助!

private void Button1_Click(object sender, System.EventArgs e)