1

我需要你的帮助。在我的经典 ASP 应用程序中添加购物车中的项目时会出现此错误(并非总是如此)

Microsoft VBScript runtime
error '800a0009'
Subscript out of range
/agrega_carrito.inc, line 71

这是文件中的代码,第 56 - 86 行

if IsEmpty(Session("arrcarrito")) then
'Create shopping cart
Dim arrcarrito()
Redim arrcarrito(6, 1)
arrcarrito (0, 0) = idprod
arrcarrito (1, 0) = color
arrcarrito (2, 0) = talla
arrcarrito (3, 0) = cantidad
arrcarrito (4, 0) = precio
arrcarrito (5, 0) = peso
Session("arrcarrito") = arrcarrito
Else
'Add items to shopping cart
arrcarrito = Session("arrcarrito")
tamano_arr = Ubound(arrcarrito, 2)
Redim Preserve arrcarrito (6, tamano_arr + 1)   <- line 71
arrcarrito (0, tamano_arr) = idprod
arrcarrito (1, tamano_arr) = color
arrcarrito (2, tamano_arr) = talla
arrcarrito (3, tamano_arr) = cantidad
arrcarrito (4, tamano_arr) = precio
arrcarrito (5, tamano_arr) = peso
Session("arrcarrito") = arrcarrito
end if
arrcart = Session("arrcarrito")
l = 0
r = UBound(arrcart,2) - 1
s = UBound(arrcart,1)
Call QuickSort(arrcart, l, r, 1, s)
Session("arrcarrito") = arrcart

谢谢 !!

4

1 回答 1

0

Redim Preserve当最后一个维度值小于 0 或任何其他维度值与首次创建数组时使用的原始值不同时,就会发生此错误。

我认为您的代码失败的唯一原因是其他页面已篡改会话值,因此返回的数组不是您期望的。

也许另一个页面是在更好地理解数组如何工作的情况下编写的,因此由于没有使用第六个条目,因此对第一个维度使用 5 的 UBound?

于 2012-07-27T08:31:00.070 回答