asp中的记录集并在asp中执行存储过程

时间:2013-03-01 13:35:27

标签: asp-classic ado

我想在按钮单击下从一个.asp页面打开另一个.asp页面以下是我已完成的代码但错误即将来临

错误即将发生,因为“当对象关闭时不允许操作

这是代码

 Dim dbconn, objCmd, objParam, rs, EmailID, Password, connString, RecordCount

 connString = "Connectionstring"

 dbconn = Server.CreateObject("ADODB.Connection")

 dbconn.Open(connString)

 rs = Server.CreateObject("ADODB.RecordSet")

 objCmd = Server.CreateObject("ADODB.Command")
 objCmd.ActiveConnection = dbconn
 objCmd.CommandText = "sp_Name"
 objCmd.CommandType = &H0004 
 objParam = objCmd.CreateParameter("@EmailID",200,1,"100",Session("EmailID"))
 objCmd.Parameters.Append(objParam)

  objParam = objCmd.CreateParameter("@Password",200,1,"100",Session("Password"))
  objCmd.Parameters.Append(objParam)

   rs = objCmd.Execute(Session("EmailID"),Session("Password"))

   do while not rs.eof ------->here comes error 

    EmailID = rs(0)
    Password =  rs(1)
    'response.Write EmailID & "," & Password & "<br">
    rs.MoveNext
loop

2 个答案:

答案 0 :(得分:0)

尝试以下代码。

SET rs = objCmd.Execute(Session("EmailID"),Session("Password"))

在rs

之前添加SET

答案 1 :(得分:0)

这是我的建议。

就我而言,Command.Execute()中的RecordSet对象不支持.BOF也不支持EOF。

所以,我使用RecordSet.Open方法调用这样的存储过程....

Dim dbconn, objCmd, objParam, rs, EmailID, Password, connString, RecordCount
connString = "Connectionstring"
dbconn = Server.CreateObject("ADODB.Connection")
dbconn.Open(connString)

rs = Server.CreateObject("ADODB.RecordSet")

objCmd = Server.CreateObject("ADODB.Command")
objCmd.ActiveConnection = dbconn
objCmd.CommandText = "sp_Name"
objCmd.CommandType = &H0004 
objParam = objCmd.CreateParameter("@EmailID",200,1,"100",Session("EmailID"))
objCmd.Parameters.Append(objParam)
objParam = objCmd.CreateParameter("@Password",200,1,"100",Session("Password"))
objCmd.Parameters.Append(objParam)

rs.Open objCmd, dbconn, 1, 1

do while not rs.eof ------->here comes error 
    EmailID = rs(0)
    Password =  rs(1)
    'response.Write EmailID & "," & Password & "<br">
    rs.MoveNext
loop

我希望现在还不晚!!