还有人吗?ASP中VBS数组老出错!急啊!明天交不差了,请一定帮忙了。

covien 2004-01-16 02:56:01
代码如下:
-------------------------------------------------
dim BCarr(10)
set rs=conn.execute ("select * from class where b_classid=0 order by classid")
i=0
Do While Not rs.EOF
' redim Preserve BCarr(i)
BCarr(i)=array(rs("classid"),rs("classname"))
response.write BCarr(0)(1)&"<br>"
i=i+1
rs.movenext
loop
response.write BCarr(0)(1)&"<br>"
--------------------------------------------------------

response.write BCarr(0)(1)&"<br>"这一句是用来测式的,运行到这一句就出现“错误 '80020009' 发生意外。”
放在上面的那一句却不会出错,可把BCarr(0)(1)中的0改为i结果都一样!真是怪啊。

...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stefli 2004-01-16
  • 打赏
  • 举报
回复
呵呵!
不是很清楚,不过,我原来遇到过left函数,和这个一样。
还是要先把rs("")赋给一个变量才能搞定。
covien 2004-01-16
  • 打赏
  • 举报
回复
经过刚刚反复测试,发现真正问题所在:
是数据库内容RS(" ")并没有真正的赋值到变量中,所以在跳出循环后就会出现错误。
然后我改成如下:
set rs=conn.execute ("select * from writ_class where b_classid=0 order by classid")
i=0
Do While Not rs.EOF
redim Preserve BCarr(i)
BC=rs("classid")
BD=rs("classname")
BCarr(i)=array(BC,BD)
i=i+1
rs.movenext
loop

果然验证了我的想法,通了!不过程序是通了,我却不能想通!为什么 BCarr(i)=array(rs("classid"),rs("classname"))这样不能把值赋与变量呢。希望能有人解答。
nchen123 2004-01-16
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2173/2173882.xml?temp=.9965631
nchen123 2004-01-16
  • 打赏
  • 举报
回复
BCarr(0, 1) 不是 BCarr(0)(1)
covien 2004-01-16
  • 打赏
  • 举报
回复
我这和recordset没有关系吧,问题出在数组呢。
jim.ma 2004-01-16
  • 打赏
  • 举报
回复
用 rs.getrows

看看

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧