2013-02-23 71 views
1

我想验证信息,而不切换页面(在这种情况下,用户名,如果找到用户名,很好,填充文本框和动态创建一个表它的用户名)。但是,我收到第75行的错误消息:创建一个表点击一个按钮与传统的ASP

ADODB.Recordset 

error '800a0e78' 

Operation is not allowed when the object is closed. 

/login.asp, line 75 

我没有关闭任何地方的记录集。据我所知,它应该工作。我究竟做错了什么?

<% 
Dim cn,rs 
    Set cn = Server.CreateObject("ADODB.Connection") 
    Set rs = Server.CreateObject("ADODB.recordset") 

    cn.Provider = "Microsoft.Jet.OLEDB.4.0" 

    cn.Open Server.MapPath("login.mdb") 

'Default message for the user on the login page 
msg = "Please login" 

'Logout code. This code empties the session variable which holds the user's userID. 
If Request.QueryString("action") = "logout" Then 
    Session("user_id") = "" 
    msg = "You have been logged out" 
End If 


'Check if the form has been submitted 

If Request.Form("Submit") = "Test" Then 

    user_name = Request.Form("user_name") 
    user_pass = Request.Form("user_pass") 

    mySQL = "SELECT user_id, user_name, user_pass FROM users WHERE user_name = '" & user_name & "' AND user_pass = '" & user_pass & "'" 

    'Select the data from the database using the submitted data. 
    rs.Open mySQL, cn 

     'Check if a match was found. 
     If NOT rs.EOF Then 

      'Session("user_id") = rsLogin("user_id") 
      'Response.Redirect("profile.asp") 

      u = rs("user_name") 

     Else 
      'If a match was not found then output an error. 
      Response.Redirect("login.asp?errmsg=Login failed") 
     End If 
End If 
%> 



<!DOCTYPE html> 
<html> 
<head> 
</head> 

<body> 
<form name="form1" id="form1" method="post" action=""> 
    <table width="300" border="0" cellspacing="0" cellpadding="2"> 
    <tr> 
     <td>Username</td> 
     <td><input name="user_name" type="text" id="user_name" /></td> 
    </tr> 
    <tr> 
     <td>Password</td> 
     <td><input name="user_pass" type="password" id="user_pass" /></td> 
    </tr> 
    <tr> 
     <td>&nbsp;</td> 
     <td><input type="submit" name="Submit" value="Test" /></td> 
    </tr> 
    </table> 
</form> 
<input id="fileno" value="<%=u%>" type="text"> 


<% 
     While NOT rs.EOF 
%> 
    <table width="200" border="1" cellspacing="0" cellpadding="2"> 
    <tr> 
    <th scope="col"><div align="left">username</div></th> 
    </tr> 

    <tr> 
    <td><%=u%></td> 
    </tr> 
<% 
     rs.MoveNext 
     Wend 
%> 
</table> 
</body> 
</html> 
+0

哪一条是75号线? – JohnFx 2013-02-23 05:03:02

回答

-2

意味着你还没有关闭连接对象

页面
+0

完全不相关的问题。 – 2013-02-25 08:06:26

1

当这种情况发生故障的最后尝试set cn =Nothing

If Request.Form("Submit") = "Test" 

您的代码尝试在不打开记录集的情况下访问rs.eof。

rs.open放在该块的外面。