我编写的登录按钮代码如下:
protected void login_Click(object sender, EventArgs e)
    {
        string name = zygs_user.Text;
        string pass = zygs_pwd.Text;
        try
        {
            
            OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("App_Data/zyq_user.mdb"));
            objConn.Open();
            string str = "select * from [zygs_user] where [user_ID] =" + name + " and [user_pass] =" + pass + "";
            OleDbCommand Comm = new OleDbCommand(str, objConn);
            OleDbDataReader rd = Comm.ExecuteReader();
            if (rd.Read())
            {
                string shuyu = rd["user_shuyu"].ToString();
                Session["shuyu"] = shuyu;
                Session["yonghu"] = name;
                Response.Redirect("~/login.aspx");
            }
            else
            {
                zygs_user.Text = "";
                zygs_pwd.Text = "";
                Response.Write("<script>alert(无法登录!)</script>");
                err.Text = "用户不存在!";
            }
            rd.Close();
            objConn.Close();
        }
        catch (Exception ex)
        {
            err.Text = (ex.Message);
        } 
    }
输入正确的用户和密码后,点击登录按钮,无法跳转到login.aspx页面,err.text老是“至少一个参数没有被指定值。”
请大虾帮忙看看!!

解决方案 »

  1.   

    如果是vs2005直接用Login控件,无需任何代码
      

  2.   

    设断点debug,看看是哪个参数没传过去,如果是asp.net2.0的话,推荐用系统的login控件来做,你自己写登陆控件的话,有很多细节都要自己处理,而系统自带的login控件这些都帮你做好了。如果你只想用Login控件的登陆和修改密码功能,其他的功能自己写,推荐用我整理的自定义MembershipProvider来利用Asp.net 2.0 Login控件的登陆和修改密码模块:http://blog.csdn.net/comiunknown/archive/2007/06/12/1649775.aspx
      

  3.   

    设了debug,它提示:
    OleDbDataReader rd = Comm.ExecuteReader();
    这句有问题!!
    请教该怎么办?!
      

  4.   

    login控件太复杂了,我只想做一个简单的用户登录,乍一看,
    OleDbDataReader rd = Comm.ExecuteReader();
    这句没有问题呀!怎么系统就提示出错呢???
      

  5.   

    唉~~终于自己搞明白了,是:
    string str = "select * from [zygs_user] where [user_ID] =" + name + " and [user_pass] =" + pass + "";
    这句SQL字符串出问题了,修改正确后:
    string str = "select * from [zygs_user] where [user_ID] =‘" + name + "’ and [user_pass] =‘" + pass + "’";
    就可以了~!!