ASP页面提示对象关闭时不允许此操作,很久都没解决,请帮忙!

时间:2022-01-17 23:54:23
<% 
dim ccc
dim arr
ccc = request.Form("textc")
arr=split(ccc,",")
dim a
a=request.Form("hf")
 
for i=0 to ubound(arr)
  sqll="insert into weixiuneirong(cid) values("&a&") "
  conn.execute(sqll)
next %>
<%
dim aaa
dim bbb   
  aaa = split(request.Form("texta"),",")
  bbb = split(request.Form("textb"),",")
rs2.move ubound(arr)  //运行此处提示对象关闭时不允许此操作
  for i=0 to ubound(arr)
sqla="insert into weixiuneirong(xmname,gongfei) values('"&aaa(i)&"',"&bbb(i)&") "
  conn.execute(sqla)
next
%>

我用rs2.open()语句提示 上下文不允许此操作。

昨天忙了一晚上,都未解决,请高手帮忙指点一下。

24 个解决方案

#1


请路过的高手指导一下。

#2


我估计是因为你在这段代码前使用了RS2.CLOSE,将RS2.CLOSE移动到这段代码后面去应该就可以了

#3


没见到你有定义过RS2么。。

#4


数据连接的代码呢?
没看到你定义的 conn , rs2 。是写在一个引用文件里么?

#5


RS2前面我已经定义了。而且第一个SQL插入语句可以执行成功。我没有写rs2.close语句。我的目的是想把记录指针向后移动。

#6


Move 在 Recordset 对象中移动记录指针。 
MoveFirst 把记录指针移动到第一条记录。 
MoveLast 把记录指针移动到最后一条记录。 
MoveNext 把记录指针移动到下一条记录。 
MovePrevious  把记录指针移动到上一条记录。  
NextRecordset 通过执行一系列命令清除当前 Recordset 对象并返回下一个 Recordset。 
好像确实没有这个操作

#7


你在前面使用了rs2 并且没有关闭 

#8


上一楼的兄弟,我用rs2.movefirst 语句 就提示当前对象已关闭,不允许操作.我的本意是,先播放字段cid的值,然后将记录指针定位到插入之前的位置。

#9


如果是执行新的sql语句 需要先关闭上一个rs2吧

#10


我在执行第一个SQL语句后,用rs2.close()提示对象已关闭。而且我这个页面只有一个记录集rs2.这个问题,怎么这么难解决啊。都搞了几天,都没解决!

#11


有哪个高手能再帮忙解决 一下不?在线等。。。。。

#12


检查rs2这个记录的连接的字符串是否打开或者前面是否关闭..

#13


我仔细检查了,根本就没有写rs2.close 这样的语句。是不是用conn.execute()语句不会打开记录集。后来我修改为rs2.open sql, conn,2,3 还是两样的错误。真是无语。
遇到的高手请看看,谢谢了!现在这个问题不解决,后面的东西都不好做了。急啊。。。。。

#14


'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql="select * from vartable1……"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close
……

这样的逻辑吧 感觉你理解的有问题 

#15


逻辑上有问题

#16


你插入数据,指针已经到表的尾部,还怎么向后移动N个呀,对不。

#17


估计你的rs2已经关闭了,

#18


引用 16 楼 oaix1977 的回复:
你插入数据,指针已经到表的尾部,还怎么向后移动N个呀,对不。

..............................
难道指针到了表的尾部,就不能向后移动吗?

#19


引用 14 楼 binfanny 的回复:
'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql="select * from vartable1……"
rs2.open conn,……


这位兄弟,当执行完rs2.open conn,sql,1,3 后rs2已经关闭了吧。再对RS2进行操作好像不错误

#20


数据对象没有打开

#21


引用 20 楼 bihaiqt 的回复:
数据对象没有打开


请问兄台,要用哪个语句打开,请帮忙啊

#22


我自己解决了。多写一个select * from 表名    rs2.open sql conn,1,3就可以了。

#23


引用 19 楼 netzk 的回复:
引用 14 楼 binfanny 的回复:
'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql="select * from varta……


没有关闭啊 你得执行rs2.close
才能继续rs2.open 
哎 被你搞晕了 都不知道你问的什么了 

#24


引用 23 楼 binfanny 的回复:
引用 19 楼 netzk 的回复:
引用 14 楼 binfanny 的回复:
'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql=……



这个问题我已经明白了。谢谢!

#1


请路过的高手指导一下。

#2


我估计是因为你在这段代码前使用了RS2.CLOSE,将RS2.CLOSE移动到这段代码后面去应该就可以了

#3


没见到你有定义过RS2么。。

#4


数据连接的代码呢?
没看到你定义的 conn , rs2 。是写在一个引用文件里么?

#5


RS2前面我已经定义了。而且第一个SQL插入语句可以执行成功。我没有写rs2.close语句。我的目的是想把记录指针向后移动。

#6


Move 在 Recordset 对象中移动记录指针。 
MoveFirst 把记录指针移动到第一条记录。 
MoveLast 把记录指针移动到最后一条记录。 
MoveNext 把记录指针移动到下一条记录。 
MovePrevious  把记录指针移动到上一条记录。  
NextRecordset 通过执行一系列命令清除当前 Recordset 对象并返回下一个 Recordset。 
好像确实没有这个操作

#7


你在前面使用了rs2 并且没有关闭 

#8


上一楼的兄弟,我用rs2.movefirst 语句 就提示当前对象已关闭,不允许操作.我的本意是,先播放字段cid的值,然后将记录指针定位到插入之前的位置。

#9


如果是执行新的sql语句 需要先关闭上一个rs2吧

#10


我在执行第一个SQL语句后,用rs2.close()提示对象已关闭。而且我这个页面只有一个记录集rs2.这个问题,怎么这么难解决啊。都搞了几天,都没解决!

#11


有哪个高手能再帮忙解决 一下不?在线等。。。。。

#12


检查rs2这个记录的连接的字符串是否打开或者前面是否关闭..

#13


我仔细检查了,根本就没有写rs2.close 这样的语句。是不是用conn.execute()语句不会打开记录集。后来我修改为rs2.open sql, conn,2,3 还是两样的错误。真是无语。
遇到的高手请看看,谢谢了!现在这个问题不解决,后面的东西都不好做了。急啊。。。。。

#14


'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql="select * from vartable1……"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close
……

这样的逻辑吧 感觉你理解的有问题 

#15


逻辑上有问题

#16


你插入数据,指针已经到表的尾部,还怎么向后移动N个呀,对不。

#17


估计你的rs2已经关闭了,

#18


引用 16 楼 oaix1977 的回复:
你插入数据,指针已经到表的尾部,还怎么向后移动N个呀,对不。

..............................
难道指针到了表的尾部,就不能向后移动吗?

#19


引用 14 楼 binfanny 的回复:
'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql="select * from vartable1……"
rs2.open conn,……


这位兄弟,当执行完rs2.open conn,sql,1,3 后rs2已经关闭了吧。再对RS2进行操作好像不错误

#20


数据对象没有打开

#21


引用 20 楼 bihaiqt 的回复:
数据对象没有打开


请问兄台,要用哪个语句打开,请帮忙啊

#22


我自己解决了。多写一个select * from 表名    rs2.open sql conn,1,3就可以了。

#23


引用 19 楼 netzk 的回复:
引用 14 楼 binfanny 的回复:
'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql="select * from varta……


没有关闭啊 你得执行rs2.close
才能继续rs2.open 
哎 被你搞晕了 都不知道你问的什么了 

#24


引用 23 楼 binfanny 的回复:
引用 19 楼 netzk 的回复:
引用 14 楼 binfanny 的回复:
'conn.asp

sql="select * from vartable……"
set rs2="server.createobject(……)"
rs2.open conn,sql,1,3
if not rs2.eof then
……
end if
rs2.close

sql=sql=……



这个问题我已经明白了。谢谢!