下标越界: 'i'

高手们,帮帮忙看一下啦!!MicrosoftVBScript运行时错误错误'800a0009'下标越界:'i'Cart_List.asp文件部分代码如下<%url=req... 高手们,帮帮忙看一下啦!!
Microsoft VBScript 运行时错误 错误 '800a0009'

下标越界: 'i'
Cart_List.asp文件部分代码如下
<%
url=request.servervariables("http_referer")
ProdIds = Session("ProdIds")
ProdNums = Session("ProdNums")
call up("购物车状态","购物车状态","购物车状态")
response.write "<tr>"
response.write " <td>"
response.write " <table border=1 width=100% cellpadding=4 style='border-collapse: collapse' bordercolor=#DFDFDF>"
response.write "<tr bgcolor=#f2f2f2><td>商品名称</td><td>市场价</td><td>网站价</td><td>订购数量</td><td>小计</td><td>删除</td></tr>"
response.write "<form action=Cart_List.asp method=post name=form1 onsubmit=return CheckFrom();>"
response.write "<input type=hidden name=cmdShow value=Yes>"
if ProdIds<>"" then
aaa=split(ProdNums,",")
bbb=split(ProdIds,",")
pbuynums=Request("pbuynums")
Quatitys=split(Request("pbuynums"),",")
session("y")=ubound(bbb)+1

for i=0 to ubound(bbb)
set rs=server.createobject("adodb.recordset")
sql="select id,product_info_PriceM,product_info_PriceS,Shop_name from product where id="&bbb(i)
rs.open sql,conn,1,1
if rs.eof or rs.bof then
response.write "<tr><td colspan=6 align=center><a href='javascript:history.go(-1)'><< 购物车为空,请返回选购商品</a></td></tr>"
else
set id=rs(0)
set product_info_PriceM=rs(1)
set RMB=rs(2)
set product_info_name=rs(3)

While Not rs.EOF
Quatity = Quatitys(i)
If Quatity <>"" Then
x=Quatity
else
x=aaa(i)
if aaa(i)="" then x=1
end if
sum1=sum1 + csng(rmb) * x
sum=FormatNumber(sum1,2,-1)
session("sum")=sum
response.write "<tr>"
response.write " <td><input type=hidden name=mc value="&id&"><a href=Product_Detail.asp?id="&id&" target=_blank>"&Shop_name&"</a></td>"
response.write " <td>¥"&FormatNumber(product_info_PriceM,2,-1)&"</td>"
response.write " <td><font color=#FF0000>¥"&FormatNumber(Rmb,2,-1)&"</font></td>"
response.write " <td><input name=pbuynums value="&x&" size=5 maxlength=5></td>"
response.write " <td>¥"&FormatNumber((csng(rmb)*x),2,-1)&"</td>"
response.write " <td><a href=Cart_Del.asp?MyAction=Del&id="&id&">删除</a></td>"
response.write "</tr>"
rs.MoveNext
Wend
end if
rs.close
set rs=nothing
next
%>
展开
 我来答
明桖瑶gr
推荐于2016-07-31 · TA获得超过1205个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:629万
展开全部
有问题的部分:
aaa=split(ProdNums,",")
bbb=split(ProdIds,",")

问题:你能保证 aaa、bbb 通过 Split 函数分割出来的数组下标完全一致?若不一致因该在调用前检查一下,问题就出现在这里。

调试:
Response.Write aaa & "<br>" & bbb
Response.End
这样输出一下 aaa、bbb 值看看是否正确。

修改:
你没给出发生错误的位置,我根据代码推断因该是以下代码发生错误:

x=aaa(i)
if aaa(i)="" then x=1

这段代码改为
If i > UBound(aaa) Then
x = 1
ElseIf aaa(i) = "" Then
x = 1
Else
x = aaa(i)
End If
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式