根据不同用户类型登陆的问题,求教大神~~

面包书上的XX 2014-04-08 05:03:36
为什么输入正确的用户名和密码后点击登陆还是停留在原来的页面不跳转?请大神们帮我看一下~代码如下:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
string UserName = this.UserName.Text.Trim();
string UserPwd = this.UserPwd.Text.Trim();
string UserType = this.UserType.Text.Trim();
//添加一个登陆密码判断
string connStr = "initial catalog=StuAtendMgr;Data source=localhost;integrated security=sspi";
SqlConnection myConn = new SqlConnection(connStr);
myConn.Open();
string mySql = "select * from Login where UserName='" + UserName + "'and UserPwd='" + UserPwd + "' and UserType='" + UserType + "'";
SqlCommand myCommand = new SqlCommand(mySql, myConn);
SqlDataReader myReader = myCommand.ExecuteReader();
if (myReader.Read())
{

if (UserType.Equals("管理员"))
{

//Response.Redirect("index.aspx");//新建一个管理员窗体,打开管理员界面
}
if (UserType.Equals("教师"))
{
Response.Redirect("Tindex.aspx");//新建一个教师窗体,打开教师界面
}
else if (UserType.Equals("学生"))
{
Response.Redirect("Sindex.aspx");//新建一个学生窗体,打开学生界面
}
}
else
{
MessageBox.Show("您输入的用户名或密码有误,请重新输入!");
}

}
...全文
385 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyx266 2014-04-10
  • 打赏
  • 举报
回复
string mySql = "select * from Login where UserName='" + UserName + "'and UserPwd='" + UserPwd + "' and UserType='" + UserType + "'"; 这句话调试下 然后把拼接的语句拿到数据中执行下 看有没有错误
跳舞的码农 2014-04-10
  • 打赏
  • 举报
回复
if else if else
弑天屠龙 2014-04-10
  • 打赏
  • 举报
回复
最后一个if换成: else { Response.Redirect("Sindex.aspx");//新建一个学生窗体,打开学生界面 }
弑天屠龙 2014-04-10
  • 打赏
  • 举报
回复
都不知道楼上的人看什么了?没看见if语句逻辑不正确么?

if (myReader.Read()
{
  if (UserType.Equals("管理员"))
  {
    Response.Redirect("index.aspx");//新建一个管理员窗体,打开管理员面                    
  }
  esle if (UserType.Equals("教师"))
  {
    Response.Redirect("Tindex.aspx");//新建一个教师窗体,打开教师界面                    
  }
  if (UserType.Equals("学生"))
  {
     Response.Redirect("Sindex.aspx");//新建一个学生窗体,打开学生界面
  }        
}
else
{
   MessageBox.Show("您输入的用户名或密码有误,请重新输入!");
}
如若还是不行,原代码中就把第一个if换成while,里面的esle去掉,if语句里面最后一句加上 dr.Closed(); break; 你再试试
chenqian1dhl 2014-04-10
  • 打赏
  • 举报
回复
亲 调试一下吧
qingzhishuishou 2014-04-10
  • 打赏
  • 举报
回复
设置一个断点跑一下啥都知道了
小鸟快飞 2014-04-10
  • 打赏
  • 举报
回复
li X X。。。。。 你要不要设断点看看有没有进IF (reader)的语句
sjbcl2008 2014-04-10
  • 打赏
  • 举报
回复
Debug下就知道了啊。看看你拼接的sql语句 复制下到sql server上面看看查询出来是什么结果? 要学会调试……
潮汐之光 2014-04-10
  • 打赏
  • 举报
回复
报什么异常吗? 把断电打在SQL语句之后,然后把拼号的SQL 放在mmsql 里面运行一下看看。
面包书上的XX 2014-04-08
  • 打赏
  • 举报
回复
引用 5 楼 zhanglong_longlong 的回复:
UserName='" + UserName + "'and and前面加空格
加了空格也还是一样,不知道是怎么回事
面包书上的XX 2014-04-08
  • 打赏
  • 举报
回复
引用 4 楼 feiyun0112 的回复:
那就说明你输入的不正确呀 UserName ,UserPwd ,UserType 三者都要完全匹配
能确认和数据库里的一致,可就是跳转不了
zhanglong_longlong 2014-04-08
  • 打赏
  • 举报
回复
UserName='" + UserName + "'and and前面加空格
feiyun0112 2014-04-08
  • 打赏
  • 举报
回复
那就说明你输入的不正确呀
UserName ,UserPwd ,UserType 三者都要完全匹配
面包书上的XX 2014-04-08
  • 打赏
  • 举报
回复
引用 1 楼 feiyun0112 的回复:
if (UserType.Equals("管理员")) { //Response.Redirect("index.aspx");//新建一个管理员窗体,打开管理员界面 } 注释掉了?没跳转 你跟踪看看就知道了
跟踪的时候不小心注释掉了。。去掉注释后还是一样,点登陆就提示用户名或密码有误,if (myReader.Read()){}里的直接被跳过了
小猪八Q 2014-04-08
  • 打赏
  • 举报
回复
要学会跟踪调试
feiyun0112 2014-04-08
  • 打赏
  • 举报
回复
if (UserType.Equals("管理员"))
{

//Response.Redirect("index.aspx");//新建一个管理员窗体,打开管理员界面
}
注释掉了?没跳转

你跟踪看看就知道了

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧