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




