小弟用ASP.net写了一个用户登陆的程序,不过数据库连接是总是有问题。。每次登陆时就报出如下错误:“/UserLogin”应用程序中的服务器错误。
--------------------------------------------------------------------------------值不能为空。参数名: password 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentNullException: 值不能为空。参数名: password源错误: 
行 68:  string Password = Request.Form["Password"];
行 69: 
行 70:  string EncryptPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(Password,"sha1");
行 71: 
行 72:  OleDbConnection Conn = new OleDbConnection (
 源文件: c:\inetpub\wwwroot\userlogin\newuserform.aspx.cs    行: 70 堆栈跟踪: 
[ArgumentNullException: 值不能为空。
参数名: password]
   System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(String password, String passwordFormat)
   UserLogin.NewUserForm.Button2_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\userlogin\newuserform.aspx.cs:70
   System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   System.Web.UI.Page.ProcessRequestMain()登陆时我用的用户名和密码在Access数据库里已经有了,可是就是不能正常登陆。。请大哥大姐们给予解答!

解决方案 »

  1.   

    Request.Form["Password"] 没有获得值,换一种方式传值
      

  2.   

    OleDbConnection Conn = new OleDbConnection (
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Password.mdb");
    Conn.Open();
    OleDbCommand Cmd = new OleDbCommand ("select Password from WebUserPassword where UserName='"+UserName+"'",Conn);
    OleDbDataReader myReader;
    myReader = Cmd.ExecuteReader();
      

  3.   

    Request.Form["Password"]没有获取到值。返回的是null。
    我想,你首先该检查的是"Password"的拼写和你的前台aspx页面中的html控件的名称是否一致。
      

  4.   

    oledbconnection conn = new oledbconnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("Password.mdb"));
      

  5.   

    你这password变量是用在何处的?
      

  6.   

    oledbconnection conn = new oledbconnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("data.mdb")); 
    conn.Open(); 
    OledbCommand cmd = new OledbCommand("select [Password] from WebUserPassword where UserName='"+UserName+"'", conn); 
    datareader dr; 
    dr = cmd.executeReader();
      

  7.   

    哈哈,,问题解决了
    SpyX说的对,我的控件名称没有一致,改过来就对了。。同时谢谢楼上几位回复的!