回 帖 发 新 帖 刷新版面

主题:读取出Session值?

在session("shop")里头放入两个信息,一个是productID,productName,它们用逗号分隔开来。
代码像这样:
          <% 
        ProductID = Request.QueryString("ProductID")
        strSQL = "SELECT * FROM Products WHERE ProductID=" & ProductID 
        Set rs = SetDBRs(strConn, strSQL, "R")          
          dim prodcut 
          prodcut = Session("shop")
          if instr(prodcut,rs("ProductName")) = 0 then 
            prodcut=prodcut & rs("ProductID") & ","
              prodcut = prodcut & rs("ProductName") & ","
              Session("shop") = prodcut
          end if 
        
       %>
在读取出来的时候,利用如下代码:
<%              
               sp=split(Session("shop"),",")
            for i=Ubound(sp) to Lbound(sp) step -2
                    Response.Write "<table width=188 border=0 cellspacing=0 cellpadding=0><tr><td height=18><a href=Details.asp?ProductID="& sp(i) &">" & sp(i-1) & "</a></td></tr></table>"
            Next     
        %>
浏览的时候,提示超出边界,是怎么回事?如何改正呢?谢谢!

回复列表 (共7个回复)

沙发

for i=Ubound(sp) to Lbound(sp) step -2
      Response.Write "<table width=188 border=0 cellspacing=0 cellpadding=0><tr><td height=18><a href=Details.asp?ProductID="& sp(i) &">" & sp(i-1) & "</a></td></tr></table>"
Next   
 
把上面这段改成:

Response.Write "<table width=188 border=0 cellspacing=0 cellpadding=0><tr><td height=18><a href=Details.asp?ProductID="& sp(Ubound(sp)) &">" & sp(Lbound(sp)) & "</a></td></tr></table>"

板凳

不行啊。按你的写法来做。晕!还有没有解决的办法呢?

3 楼

干吗非要用这么麻烦的循环方式?!
for each item in sp
next
不就得了?

4 楼

??用split截取的字符串,可以用foreach语句吗?

5 楼

split不是截取字符串,而是根据条件分割成数组。
只要是数组或集合,就能用for each

6 楼

何必这么麻烦,用两个session变量不就OK啦?

7 楼

每多一个session就多占用一份内存。
所以就有了这种牺牲CPU运算速度来节省内存的方式。

我来回复

您尚未登录,请登录后再回复。点此登录或注册