Login控件登陆,Login控件上的UserName和Password的值的传递是正确的,数据库连接也是正确的,要读的数据库内的表是:
表名:Student
      SNo(主键)
      SName
      SPassword
我想要做的操作是根据Login控件上的UserName(即Student表中的SNo)在Student表中查SPassword,如果表Student中没有UserName或者查到的SPassword与Login控件上的Password不等,跳转到Default.aspx,如果查到的SPassword与Login控件上的Password相等,跳转到StuShowQue.aspx。好像是C#语言有错误。下面是代码:protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
        {
            string constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True";
            SqlConnection con = null;
            con = new SqlConnection();
            con.ConnectionString = constr;
            con.Open();
            String Name = Login1.UserName;
            String Password =Login1.Password;            try
            {
                String cc="Select SPassword from Student where SNo='20080001'";
                SqlCommand cmd = new SqlCommand(cc,con);
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    String aa = dr.GetString(0);
                    if (aa.Equals(Password))
                        Response.Redirect("StuShowQue.aspx");
                    else
                        Response.Redirect("Default.aspx");
                }
                else
                    Response.Redirect("Default.aspx");
            }
            catch (Exception ex) { }        }
    }

解决方案 »

  1.   

    有3个建议
    1、if尽量带{}
    2、con.Open();放到try里,SqlDataReader dr = cmd.ExecuteReader();这句之前
    2、try增加finally,里边con.Close();其他问题吧try去掉,看看什么错误信息
      

  2.   

    我觉得你这样做是不好的,你的UserName是唯一的吗?不唯一的话,那就有问题。至于你的问题,这只是个简单的登录,你自己调试一下看 String aa = dr.GetString(0);有没有值。C#语法有错,具体什么错?
      

  3.   

    string constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True";
    string strConn = @"Data Source=192.168.1.88;Initial Catalog=dm;User ID=sa;Password=admin";
      

  4.   

    额  一楼 应该是我复制黏贴的时候多粘了一个括号,程序中没多,多了的话会报错
    二楼  把try去掉了,程序还是能运行,但我用正确的用户名、密码还是登陆不了我用
    4楼  是我的连接有问题?