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

问题描述 投票:3回答:2

我想在按钮单击下从一个.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
asp-classic ado
2个回答
0
投票

试试下面的代码。

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

在rs之前添加SET


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

我希望现在还不晚!

© www.soinside.com 2019 - 2024. All rights reserved.