ASP DO LOOP循环从第2条记录开始重复循环了,请问有什么方法能避免吗? 65
<%setrs1=Server.CreateObject("ADODB.Recordset")sql1="selectdistinctsno,CM_VSL,CM_voy,...
<%
set rs1 = Server.CreateObject("ADODB.Recordset")
sql1="select distinct sno,CM_VSL,CM_voy,cm_blno,conno,MOVECD,CM_MOVEPLFR,CM_MOVEDATE from conmove,CONTAINER where cm_blno=CON_BLNOIM and cm_blno=CON_BLNOIM and(cm_blno Like '%"&cm_blno&"%' or CON_BLNOIM Like '%"&cm_blno&"%' or conno Like '%"&cm_blno&"%')"
rs1.open sql1,conn,1,1
if rs1.eof and rs1.bof then
response.Write("暂时没有记录")
else
END IF
i=1
do while not rs1.EOF and i<100
%>
<table width="862" height="43" border="1" bordercolor="#000000" >
<tr>
<td width="39"><div align="center"><%= response.Write(rs1("sno"))%></div></td>
<td width="85"><div align="center"><%= response.Write(rs1("CM_VSL"))%></div></td>
<td width="74"><div align="center"><%= response.Write(rs1("CM_voy"))%></div></td>
<td width="136"><div align="center"><%=response.Write(rs1("cm_blno"))%></div></td>
<td width="130"><div align="center"><%=response.Write(rs1("conno"))%></div></td>
<td width="102"><div align="center">
<%
dim A
A=rs1("MOVECD")
if A="STSH" then response.Write"空箱出场"
if A="RCVE" then response.Write"空箱进场"
if A="DCHF" then response.Write"重箱卸船"
if A="RCVF" then response.Write"重箱进场"
if A="STCO" then response.Write"重箱出场"
if A="LOBF" then response.Write"重箱装船"
%></div></td>
<td width="94"><div align="center"><%=response.Write(rs1("CM_MOVEPLFR"))%></div></td>
<td width="150"><div align="center"><%=response.Write(rs1("CM_MOVEDATE"))%></div></td>
</tr>
</table>
<%
Rs1.MoveNext()
i=i+1
LOOP
rs1.close
conn.close
%>
第2个状态循环又按时间重复了,重箱出场状态对应的时间其实只有一个,但是因为重箱出场状态下有不同的记录集,结果循环就按所有记录集内的时间循环了,下面几位朋友的回答都没有解决问题,请继续帮忙下。 展开
set rs1 = Server.CreateObject("ADODB.Recordset")
sql1="select distinct sno,CM_VSL,CM_voy,cm_blno,conno,MOVECD,CM_MOVEPLFR,CM_MOVEDATE from conmove,CONTAINER where cm_blno=CON_BLNOIM and cm_blno=CON_BLNOIM and(cm_blno Like '%"&cm_blno&"%' or CON_BLNOIM Like '%"&cm_blno&"%' or conno Like '%"&cm_blno&"%')"
rs1.open sql1,conn,1,1
if rs1.eof and rs1.bof then
response.Write("暂时没有记录")
else
END IF
i=1
do while not rs1.EOF and i<100
%>
<table width="862" height="43" border="1" bordercolor="#000000" >
<tr>
<td width="39"><div align="center"><%= response.Write(rs1("sno"))%></div></td>
<td width="85"><div align="center"><%= response.Write(rs1("CM_VSL"))%></div></td>
<td width="74"><div align="center"><%= response.Write(rs1("CM_voy"))%></div></td>
<td width="136"><div align="center"><%=response.Write(rs1("cm_blno"))%></div></td>
<td width="130"><div align="center"><%=response.Write(rs1("conno"))%></div></td>
<td width="102"><div align="center">
<%
dim A
A=rs1("MOVECD")
if A="STSH" then response.Write"空箱出场"
if A="RCVE" then response.Write"空箱进场"
if A="DCHF" then response.Write"重箱卸船"
if A="RCVF" then response.Write"重箱进场"
if A="STCO" then response.Write"重箱出场"
if A="LOBF" then response.Write"重箱装船"
%></div></td>
<td width="94"><div align="center"><%=response.Write(rs1("CM_MOVEPLFR"))%></div></td>
<td width="150"><div align="center"><%=response.Write(rs1("CM_MOVEDATE"))%></div></td>
</tr>
</table>
<%
Rs1.MoveNext()
i=i+1
LOOP
rs1.close
conn.close
%>
第2个状态循环又按时间重复了,重箱出场状态对应的时间其实只有一个,但是因为重箱出场状态下有不同的记录集,结果循环就按所有记录集内的时间循环了,下面几位朋友的回答都没有解决问题,请继续帮忙下。 展开
3个回答
展开全部
代码没有错误啊
以下是推荐改进的地方:
1.<%= response.Write(rs1("sno"))%>
可改成:<%= rs1("sno")%> 或 <% response.Write rs1("sno")%>
2.end if 放置 loop之下
3.变量i=1 放置创建记录集开始的上面set rs1 = Server.CreateObject("ADODB.Recordset")上面
以下是推荐改进的地方:
1.<%= response.Write(rs1("sno"))%>
可改成:<%= rs1("sno")%> 或 <% response.Write rs1("sno")%>
2.end if 放置 loop之下
3.变量i=1 放置创建记录集开始的上面set rs1 = Server.CreateObject("ADODB.Recordset")上面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用for循环,不要用do循环
追问
请问能帮忙只得到FOR NEXT 要怎么加
追答
for i = 1 to rs1.recordcount
if rs1.eof then exit for
................................'这里是你的处理
rs.movenext
next
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-02-07
展开全部
这个 do 并没有错,你把问题描述明白些?
END IF 放的地方不对,要放在LOOP下面
END IF 放的地方不对,要放在LOOP下面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询