asp.net(C#)VS2010 登陆界面,不管输入的用户名、密码正确与否,页面都不跳转
后台代码在这里,求高手指点~~~protectedvoidButton1_Click(objectsender,EventArgse){SqlConnectionsqlc...
后台代码在这里,求高手指点~~~
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = "Data Source=WIN-A0643GOM7LQ;Initial Catalog=TF;Persist Security Info=True;User ID=sa;Password=sa";
sqlcon.Open();
string strselect = "select * from users where name='" + TextBox1.Text + "'and pwd='" + TextBox2.Text + "'";
SqlCommand cmd = new SqlCommand(strselect, sqlcon);
int intCount = Convert.ToInt32(cmd.ExecuteScalar().ToString());
if (intCount != 0)
{
Session["userid"] = TextBox1.Text;
this.Response.Redirect("Message.aspx");
}
else
{
this.Label1.Text = "用户名或密码不正确";
this.Label1.Visible = true;
}
} 展开
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = "Data Source=WIN-A0643GOM7LQ;Initial Catalog=TF;Persist Security Info=True;User ID=sa;Password=sa";
sqlcon.Open();
string strselect = "select * from users where name='" + TextBox1.Text + "'and pwd='" + TextBox2.Text + "'";
SqlCommand cmd = new SqlCommand(strselect, sqlcon);
int intCount = Convert.ToInt32(cmd.ExecuteScalar().ToString());
if (intCount != 0)
{
Session["userid"] = TextBox1.Text;
this.Response.Redirect("Message.aspx");
}
else
{
this.Label1.Text = "用户名或密码不正确";
this.Label1.Visible = true;
}
} 展开
4个回答
展开全部
有两种情况,我不知道你是哪一种,因为你没有说清楚,你可以追问一下
第一种,strselect 里面没有匹配的,也就是说无论where name='" + TextBox1.Text + "'and pwd='" + TextBox2.Text + "',这个里面NAME与PWD不能与BOX1与BOX2匹配,原因基本是空格原因,去除空格,然后把=换成LIKE就可以了
第二种,到了这里 if (intCount != 0)
{
Session["userid"] = TextBox1.Text;
this.Response.Redirect("Message.aspx");
}
也就是说,你的SQL语句正确,但是就是跳转不过去,原因很简单Message.aspx不存在或是不在工程里
第一种,strselect 里面没有匹配的,也就是说无论where name='" + TextBox1.Text + "'and pwd='" + TextBox2.Text + "',这个里面NAME与PWD不能与BOX1与BOX2匹配,原因基本是空格原因,去除空格,然后把=换成LIKE就可以了
第二种,到了这里 if (intCount != 0)
{
Session["userid"] = TextBox1.Text;
this.Response.Redirect("Message.aspx");
}
也就是说,你的SQL语句正确,但是就是跳转不过去,原因很简单Message.aspx不存在或是不在工程里
追问
我找到问题所在了,在Message.aspx的Page_Load函数里,第一句就是if (Session["userid"] == null) { Response.Redirect("Login.aspx"); }也就是说,我输入正确的用户名、密码以后,页面其实是跳转到"Message.aspx"这个页面了,不过因为Session["userid"] == null,所以又跳转回Login.aspx了,为什么Session["userid"]始终是空值啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不跳转,标签显示"用户名或密码不正确"否?
检查下按钮是否注册了Click事件,也就是前台的Button1是否有 OnClick="Button1_Click"
检查下按钮是否注册了Click事件,也就是前台的Button1是否有 OnClick="Button1_Click"
更多追问追答
追问
标签什么也不显示,“登录”按钮也注册了Click事件~~~
追答
贴一下前后台的代码
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这段代码里只有this.Response.Redirect("Message.aspx");
才跳转了来!!你把这句删除!!
或者是你的message.aspx里让他跳转了!!把message.aspx的代码发来看看!!
才跳转了来!!你把这句删除!!
或者是你的message.aspx里让他跳转了!!把message.aspx的代码发来看看!!
追问
Message.aspx里的 Page_Load函数里第一句就是if (Session["userid"] ==null){Response.Redirect("Login.aspx");}我觉着和这句有关系,因为我刚刚把这句去掉以后,输入正确的用户名、密码,页面跳转了,输入错误的标签也显示错误了~~~也就是说,不管我输入什么用户名、密码,Session["userid"] 始终为空~~这是为什么,怎么解决?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那如果用户名密码正确,有出现, "用户名或密码不正确"吗?
看代码好像没有什么问题
看代码好像没有什么问题
更多追问追答
追问
没有呀~~输入正确的用户名、密码页面不跳转,输入错误的标签也不显示错误~~~
追答
这样,是不是你前台button的onclick没有对应上你的函数,这样说你可能不明白
就是,你双击下页面的登录按钮,看看去到什么地方,是否你上面写的这个函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询