CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

ASP里怎么操作数组,谢谢

楼主xc2927(谁让我爱上你的)2006-10-01 22:27:42 在 Web 开发 / ASP 提问

在ASP里怎么定义一个数组,并动态给这个数据输入数据,  
  并在用完后清除这个数据,以备下个循环使用,谢谢 问题点数:20、回复次数:16Top

1 楼hanpoyangtitan(韩波洋)回复于 2006-10-02 16:02:10 得分 0

dim   a()  
  for   i=0   to   100-1  
        a(i)=i+1  
  next  
  =========  
  dim   a(1)  
  for   i=0   to   100-1  
      a(i)=i+1  
      redim   a(i+2)  
  nextTop

2 楼xc2927(谁让我爱上你的)回复于 2006-10-02 21:04:45 得分 0

楼上第一种和第二种有什么区别Top

3 楼smartcatiboy()回复于 2006-10-03 10:02:13 得分 0

redim   是动态数组,数组大小可变,dim是静态的。  
   
  dim   要快点Top

4 楼xc2927(谁让我爱上你的)回复于 2006-10-03 10:50:56 得分 0

我现在的情况是\  
  这是是一个外循环  
  d=1  
  dim   stuff()  
  dim   labelstuff()  
  //下面是在一个内循环里  
  Redim   Preserve   stuff(d)    
  Redim   Preserve   labelstuff(d)    
  stuff(d)   =   j/i    
  labelstuff(d)=   cstr(rs2("id"))  
  d=d+1  
  //内循环结束处  
   
  第一次进入外循环时内循环正常执行完成,到第二次外循环时就提示Redim   Preserve   stuff(d)    
  Redim   Preserve   labelstuff(d)    这块类型不匹配了,什么原因Top

5 楼showlin(六斤八两八)回复于 2006-10-03 11:16:35 得分 20

dim   同一个数组只能一次,所以dim不能放在循环内  
  而且,我看不出你程序的意图,把recordset中的值取出来保存在一个临时数组内?  
  用一个多维数组不就搞定了?  
   
  dim   stuff()  
  '=========外循环开始=========  
  '取数据  
  '取rs.recordcount数据的数量)  
  redim   preserver   stuff(1,数据的数量)  
  i=0  
  '=======开始循环赋值  
  stuff(0,i)=xxxxx  
  stuff(1,i)=xxxxxxxxxxxxxxxxxx  
  i=i+1  
  '=====循环赋值结束  
  '========使用数据=======  
  redim   stuff(0,0)     '清空数组  
  '=====外循环结束Top

6 楼xc2927(谁让我爱上你的)回复于 2006-10-03 13:03:52 得分 0

我的意图是这样的,是调用一个函数,这个函数里要这两个数组.  
  程序是这样的  
  set   rs1=server.CreateObject("adodb.recordset")  
  sql="select   maintype   from   kt   where   ktname='"&rs("ktname")&"'   and   kttype=0   group   by   maintype"    
  rs1.Open   sql,conn,1,1  
  do   while   not   rs1.eof  
          d=1  
    dim   stuff(8)  
    dim   labelstuff(8)  
  set   rs2=server.CreateObject("adodb.recordset")  
  sql="select   *   from   kt   where   maintype='"&rs1("maintype")&"'   and   kttype=0   order   by   id"    
  rs2.Open   sql,conn,1,1  
  do   while   not   rs2.eof  
   
  i=0  
  j=0  
  set   rs3=server.CreateObject("adodb.recordset")  
          sql="select   *   from   ctask   where   bctaskid='"&bctaskid&"'"    
  rs3.Open   sql,conn,1,1  
  do   while   not   rs3.eof  
   
  set   rs4=server.CreateObject("adodb.recordset")  
          sql="select   *   from   taskanswer   where   ctaskid="&rs3("id")&"   and   ktid="&rs2("id")    
  rs4.Open   sql,conn,1,1  
  if   not   rs4.eof   then  
  j=j+rs4("answer")  
  i=i+1  
  end   if  
  rs3.movenext  
  loop  
  Redim   Preserve   stuff(d)    
           Redim   Preserve   labelstuff(d)    
  stuff(d)   =   j/i    
    labelstuff(d)=   cstr(rs2("id"))  
    d=d+1  
   
  %>  
   
                  <tr   align="center">  
                      <td   width="9%"   height="24"   bgcolor="#FFFFFF"><span   class="style12"><%=rs2("id")%></span></td>  
                      <td   width="9%"   height="24"   bgcolor="#FFFFFF"><span   class="style12"><%=rs2("maintype")%></span></td>  
                      <td   width="18%"   height="24"   bgcolor="#FFFFFF"><span   class="style12"><%=rs2("sctype")%></span></td>  
                      <td   width="53%"   height="24"   bgcolor="#FFFFFF"><span   class="style12"><%=rs2("content")%></span></td>  
                      <td   width="8%"   height="24"   bgcolor="#FFFFFF"><span   class="style12"><%=j/i%></span></td>  
                  </tr>          
  <%  
  rs2.movenext  
  loop  
   
  %>  
  <tr   align="center">  
                      <td   width="97%"   height="260"   colspan="5"   valign=top   >  
  <%  
  Response.Write   MakeColumn(rs1("maintype"),   stuff,   labelstuff,   150,30)     '数组就是给这个函数用的  
   
  %>  
                      </td>  
                  </tr>  
  <%  
   
  rs1.movenext  
  loop  
  %>Top

7 楼xc2927(谁让我爱上你的)回复于 2006-10-03 13:04:29 得分 0

上面发错了,  
          d=1  
    dim   stuff(8)  
    dim   labelstuff(8)  
  应该是  
          d=1  
    dim   stuff()  
    dim   labelstuff()Top

8 楼hanpoyangtitan(韩波洋)回复于 2006-10-03 14:29:23 得分 0

出现什么问题?Top

9 楼xc2927(谁让我爱上你的)回复于 2006-10-03 16:25:47 得分 0

到第二次外循环的时候就提示类型不匹配Top

10 楼showlin(六斤八两八)回复于 2006-10-03 17:07:46 得分 0

太长了,好像你的rs3循环就是为了取answer的平均数嘛,为什么不用  
  select   avg(answer)   from   ..................?Top

11 楼xc2927(谁让我爱上你的)回复于 2006-10-03 18:03:46 得分 0

楼上提示的对,但这个不能解决那个数组的问题吧,谢谢Top

12 楼xulxqqqq()回复于 2006-10-04 00:39:45 得分 0

redimTop

13 楼showlin(六斤八两八)回复于 2006-10-04 08:35:45 得分 0

数组的问题我也说了阿,你不能重复定义一个数组,也就是不能在循环中使用dim  
  必须使用redim,伪语句我都给你了Top

14 楼cc203203(为了过日子!)回复于 2006-10-04 08:44:52 得分 0

路过!!Top

15 楼btbtd(签名加载中...请稍候...单击...双击ok)回复于 2006-10-04 17:13:24 得分 0

ASP   的数组太过简单,   瞄一下手册就行.Top

16 楼xc2927(谁让我爱上你的)回复于 2006-10-04 19:56:19 得分 0

showlin(林林)       多谢林林,问题解决了,Top

相关问题

关键词

得分解答快速导航

  • 帖主:xc2927
  • showlin

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo