| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4657 人关注过本帖
标题:do while与for循环的区别
只看楼主 加入收藏
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
收藏
得分:0 
不可能一样
Rs.PageSize =15

假设记录集只有一行数据
循环一次
i=1
这个时候,i >= Rs.PageSize 并不成立,不会跳出
而rs.eof 已经成立了

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2011-04-01 08:16
ab382717036
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-19
收藏
得分:0 
<!--#include file="Conn.asp" -->
<!--#include file="Conn1.asp"-->
<!--#include file="Comm/Site_Class.asp" -->
<%
PagePath = ""

Set Qsite = New Site_Class

Qsite.SiteConfig_Master()
Dim Rs,Sql,CurrentPage,FileName,Sql1,Rs1
Dim PersonName,ViewType
Dim PerId
Dim Act,IsHidden,IsLock,IsGj,IsTj,IsYear,IsSh
Dim TodayDate
Dim j,s,m,n,i,x
Dim A(),B(),C()
m=0
n=0
x=0
   Set rs=server.CreateObject("ADODB.Recordset")
   '打开记录集对象
%>
<title>网站公告页面</title>
</head>

<BODY>


<table width="100%" border="0" cellspacing="1" cellpadding="5">
    <tr>
        <td width="8%" class="td_content"><strong>用户名</strong></td>
        <td width="8%" class="td_content"><strong>真实姓名</strong></td>
        <td width="6%" class="td_content"><strong>性别</strong></td>
        <td width="6%" class="td_content"><strong>年龄</strong></td>
        <td width="8%" class="td_content"><strong>学历</strong></td>
        <td width="12%" class="td_content"><strong>求职意向</strong></td>
    </tr>

<%
   Set Rs1=server.CreateObject("ADODB.Recordset")
   Rs1.open "Select * from UserTB",Conn1,1,1
     If Not Rs1.Eof Then
          for j=1 to rs1.recordcount
          ReDim Preserve B(2,rs1.recordcount)
          B(1,j)=Rs1("PerId")
          B(2,j)=Rs1("FUname")
          m=m+1
          rs1.movenext
          next
          End if
     Rs1.close
  Set Rs=server.CreateObject("ADODB.Recordset")
  Rs.open "select * from test",Conn,1,1
  if Not Rs.Eof Then
   for j=1 to Rs.Recordcount
   ReDim Preserve A(2,rs.recordcount)
     A(1,j)=Rs("PerId")
     A(2,j)=Rs("UserName")
     n=n+1
     rs.movenext
     next
     End if
     Rs.close
     s=m+n
     
     
     for i=1 to n
     ReDim preserve B(2,s)
     B(1,m+i)=A(1,i)
     B(2,m+i)=A(2,i)
     next
  Set Rs=server.CreateObject("ADODB.Recordset")
   Rs.open "Select * from PersonTbl order by EditDate desc",Conn,1,1
     If Not Rs.Eof Then
     for j=1 to rs.recordcount
     x=x+1
     ReDim Preserve C(7,rs.recordcount)
     C(2,j)=Rs("sex")
     C(3,j)=Rs("age")
     C(4,j)=Rs("realname")
     C(5,j)=Rs("Qualification")
     C(6,j)=Rs("JobPost")
     C(1,j)=Rs("PerId")
     C(7,j)=""
     rs.movenext
     next
     End if
     Rs.close
     for i=1 to x
       for j=1 to s
        if C(1,i)<>B(1,j) Then
        Else
        C(7,i)=B(2,j)
        End if
        next
     next
  '定义循环变量
 rs.open "select * from PersonTbl order by EditDate desc",Conn,1,1
   rs.pagesize=15
   '得到请求的页号
   CurrentPage=clng(request("page"))
   IF request("page")<>"" then
     CurrentPage=clng(request("page"))
   Else
     CurrentPage=1
   End IF
   IF CurrentPage<1 Then CurrentPage=1
   If CurrentPage>rs.pagecount Then CurrentPage=rs.pagecount
  rs.absolutepage=CurrentPage
  for  i=1 to rs.recordcount--------现在是这样的情况如果用循环 for i=1 to rs.recordcount 时 一个页面就显示完了rs.pagesize根本就没有控制住,
                                    如果用 for i=1 to rs.pagesize 数组C()在rs.pagesize就结束了,我想让数据库记录的数跟数组同时结束,怎么解决
  ReDim Preserve C(7,rs.recordcount)
  %>
  <tr>
        <td class="td_content"><%=C(7,i)%></td>
        <td class="td_content"><%=C(4,i)%>||<%=Rs("realname")%></td>
        <td class="td_content"><%=C(2,i)%>||<%=Rs("sex")%></td>
        <td class="td_content"><%=C(3,i)%>||<%=Rs("age")%></td>
        <td class="td_content"><%=C(5,i)%>||<%=Rs("Qualification")%></td>
        <td class="td_content"><%=C(6,i)%>||<%=Rs("JobPost")%></td>
</tr>
  <%
   rs.MoveNext
   IF rs.Eof Then Exit For
  next
  %>
</table>
<table width="400" border="0">
  <tr>
  <%
  '翻页控制代码
  IF CurrentPage<>1 Then
    Response.Write("<td><a href=aa.asp?page=1>第一页</a></td>")
    Response.Write("<td><a href=aa.asp?page="&(CurrentPage-1)&">上一页</a></td>")
  Else
    Response.Write("<td>第一页</td>")
    Response.Write("<td>上一页</td>")
  End IF   
  IF CurrentPage<>rs.pagecount then
    Response.Write("<td><a href=aa.asp?page=" & (CurrentPage+1) & ">下一页</a></td>")
    Response.Write("<td><a href=aa.asp?page=" & rs.pagecount & ">最后一页</a></td>")
  Else
    Response.Write("<td>下一页</span></td>")
    Response.Write("<td>最后一页</span></td>")
  End IF
  %>
    <td>共<%=rs.pagecount%>页</td>
    <td>当前第<%=CurrentPage%>页</td>
  </tr>
</table>
<%
'网页对象析构代码
rs.Close
conn.Close
Set rs=Nothing
Set conn=Nothing
%>
</body>
</html>

运行后出现重复而且Rs.PageSize=15根本没控制住怎么回事
第一个页面就全部显示完了

路成军     路成军          25     本科     程序员
xiaoye2234     王小叶          23     大专     助理
richard77     傅振国          30     本科     外贸业务员
nancy2002     高琴琼          22     本科     翻译
manxin     王温丽          22     大专     外贸单证
王秧飞     王秧飞          25     高中及以下     金融
denisegong     龚琼盛          28     大专     其他
pursuit     梁飞杰          22     本科     外贸业务员
yi4218     曹麟义          27     大专     外贸跟单
zdy123     周道园          26     高中及以下     其它
monicazyj     张郁佳          25     大专     外贸采购或助理
第二个页面跟第一个页面重复
王秧飞     王秧飞          25     高中及以下     金融
denisegong     龚琼盛          28     大专     其他
pursuit     梁飞杰          22     本科     外贸业务员
yi4218     曹麟义          27     大专     外贸跟单
zdy123     周道园          26     高中及以下     其它
monicazyj     张郁佳          25     大专     外贸采购或助理


[ 本帖最后由 ab382717036 于 2011-4-2 15:54 编辑 ]
2011-04-02 14:07
ab382717036
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-19
收藏
得分:0 
求助 求助
2011-04-02 15:55
ab382717036
Rank: 2
等 级:论坛游民
帖 子:73
专家分:20
注 册:2011-3-19
收藏
得分:0 
  自己终于把问题解决了不容易啊
2011-04-02 17:08
快速回复:do while与for循环的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020414 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved