回 帖 发 新 帖 刷新版面

主题:程序无错但是无办法跳转!请帮忙!在线等!

private bool checkUser(string userName,string userPwd)

userName=TextBox1.Text;                                   
userPwd=TextBox2.Text;
string sqlconn="server=(local);uid=sa;pwd=;database=Text1";    
SqlConnection myConnection=new SqlConnection(sqlconn);//打开数据库连接
myConnection.Open();
SqlCommand myCommand=new SqlCommand("Select * from test1 where UserName='"+userName+"' and UserPassword='"+userPwd+"'",myConnection);
SqlDataReader myReader=myCommand.ExecuteReader();
if(myReader.Read())
{checkLevel(myReader.GetString(2));
 myReader.Close();
 myConnection.Close();
 return true;//登陆成功
}
else
{
myReader.Close();
myConnection.Close();
return false;//登陆失败
}
private void checkLevel(string flag)
{
if(flag=="总经理")
{
Response.Redirect("WebForm3.aspx");
}
if(flag=="经理")
{
Response.Redirect("WebForm2.aspx");
}
if(flag=="员工")
{
Response.Redirect("WebForm4.aspx");
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
if(checkUser(TextBox1.Text,TextBox2.Text))
{
 Response.Write("<script>alert('登陆成功!')</script>");
}
if(TextBox1.Text!="UserName" && TextBox2.Text!="UserPassword")
{
Response.Write("<script>alert('登陆失败!')</script>");
}
}
//程序能够执行。但是。当我输入数据库中匹配的内容的时候。页面会显示:“登陆成功”然后又接着显示“登陆失败!”;
以上程序我在别处能完整的执行。先更换地方后不行了!哭死!
在线等!!!    

回复列表 (共5个回复)

沙发

个人感觉是Button控件中的if(checkUser(TextBox1.text,TextBox2.text)调用函数checkLevel没有被执行!

板凳

本人学习c#时间不长,但感觉问题出在最后一句:
if(TextBox1.Text!="UserName" && TextBox2.Text!="UserPassword")
{
Response.Write("<script>alert('登陆失败!')</script>");
}
这句判断有点多余。改为:
private void Button1_Click(object sender, System.EventArgs e)
{
if(checkUser(TextBox1.Text,TextBox2.Text))
    Response.Write("<script>alert('登陆成功!')</script>");
else
    Response.Write("<script>alert('登陆失败!')</script>");
}
试一试。

另外,checkLevel如果没有被执行,可能是checkLevel(myReader.GetString(2));
出现问题,是不是要加上trim()?

3 楼

在下面这段
private bool checkUser(string userName,string userPwd)

userName=TextBox1.Text;                                   
userPwd=TextBox2.Text;
string sqlconn="server=(local);uid=sa;pwd=;database=Text1"; 
...........

userName=TextBox1.Text;                                   
userPwd=TextBox2.Text;
是不能要的.
因为是调用checkUser()时就已经给userName赋值为TextBox1.Text




   

4 楼

同意2楼
checkUser(string userName,string userPwd)里已经判断了为什么还要另外在判断呢?
还有checkUser(textbox1.text,textbox2.text)和userName=textbox1.text;passwrd=textbox2.text
是不是有点矛盾呢?
       ...........初学...................

5 楼

已经解决 谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册