澳门巴黎铁塔怎么去:紧急!!!!!!!!!!!!!ASP程序问题!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 18:50:57
我要实现通过表单提交来的id数组来查询数据,代码如下,结果是只能查询第一个结果,以后的都只是把第一个结果重复输出!我试着把锁定类型改为1,3/2,2/3,2/1,1/3,3还是不行,请各位高手帮我看看吧!

Dim rs,sql()
set rs = Server.CreateObject("adodb.recordset")
Dim allfee
allfee=0
dim inum,i,j
dim iarray
iarray=split(Request.Form("id"),",")
inum=ubound(iarray)
redim sql(inum)
for i=0 to inum
Response.Write(iarray(i))
sql(i)="select*from DN where id="&iarray(i)
next

do while j<=inum
rs.open sql(j),conn,1,1
Response.Write(rs("dn"))
Response.Write"<br>"
allfee=allfee+rs("fee")
rs.movefirst
j=j+1
if j>inum then exit do
Loop

结果是:

id dn fee
12 www.xx.xx 50
18 www.xx.xx 50
23 www.xx.xx 50

前面id可以正常显示,后面的dn和fee两项就是重复的了,不是正确的数据!

请各位高手看看!

你的编程逻辑不好,不要用其他变量来对数据库遍历。

将你的代码

do while j<=inum
rs.open sql(j),conn,1,1
Response.Write(rs("dn"))
Response.Write"<br>"
allfee=allfee+rs("fee")
rs.movefirst
j=j+1
if j>inum then exit do
Loop

改写如下:

Do While Not rs.Eof

rs.Open sql(j),conn,1,1
Response.Write(rs("dn"))
Response.Write"<br>"
allfee = allfee + rs("fee")
rs.MoveNext
j = j + 1
If j > inum Then Exit Do

Loop

rs.movefirst改为rs.movenext