纳屋naya人妖系列:关于ASP和SQL的循环

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 12:17:31
我想实现下面的循环,应该可以输出一组值,但现在只能返回一个值.请各位大虾帮忙改一下,让它能返回一组值
(注:SQL读库的这一段没有问题,我认为问题是出在循环上)
dim wendu_02(999)
n=0
do while n<999
%>
<%
set table05=server.CreateObject("adodb.connection")
table05.open "dsn=zdz;UID=ybywb;PWD=zyt029;Database=elementinfo;"
set rs05=table05.execute("select * from tabTimeData where ObservTimes like '%0202' and StationNum='57036'")
while not rs05.eof
%>
<%
wendu_02(n)=rs05("DryBulTemp")
rs05.movenext
wend
%>
<%
n=n+1
loop
现在不是返回一个值,而是返回一组相同的值,给我的感觉是把同一个值返回了很多次.按说应该返回一组不相同的值

while not rs05.eof
%>
<%
wendu_02(n)=rs05("DryBulTemp")
rs05.movenext

循环这个的时候 N的值没有发生变化 所以wendu_02(n)的值为该次循环最后一个rs05("DryBulTemp")的值

而且 当你N发生变化后 SQL语句并没有变化,所以返回的结果都是
select * from tabTimeData where ObservTimes like '%0202' and StationNum='57036'
这条SQL语句查询结果的最后一条记录

所以所有值都一样

改成这样试试
dim wendu_02(999)
n=0
set table05=server.CreateObject("adodb.connection")
table05.open "dsn=zdz;UID=ybywb;PWD=zyt029;Database=elementinfo;"
set rs05=table05.execute("select * from tabTimeData where ObservTimes like '%0202' and StationNum='57036'")
while (not rs05.eof) and (n<999)
%>
<%
wendu_02(n)=rs05("DryBulTemp")
n=n+1
rs05.movenext
wend

把创建连接的语句放到循环外面(外循环的外面)
改成用rs.open来运行SQL语句

补充:这是当然了,每次外层的n值被修改后,你都是一次性把整个数据集装到同一个下标里面,当然只会显示最后一个。就是说比如外层循环到n=3时,内层循环就把表的所有数据猪个存放到wendu_02(3)里了