例如,你的留言版帖子有一个ID,然后你每页是20行,
那么对于第一页,是
select top 20 * from table order by id
那么这一页生成时,你已经获得了第20条的ID。
那么对于第2页,就是
select top 20 * from table where id>第20条的ID order by id依此类推。

解决方案 »

  1.   

    那么这个不能肯定呀!   例如,我如果现在再看第一页,然后我要马上跳转到第九页,那么,中间的id肯定是会有一定的差距的,而且,也不能得到第八页的最后一个id号码呀!
          继续求教,不过,先加一点分,给后面的人
      

  2.   

    to :  tonton(tonton)
           absoluteposition怎么用,可以告诉我语法吗?
      

  3.   

    才发现原来ADODB.RecordSet对象是支持分页的。
    你自己查一下MSDN吧。
    直接设置PAGESIZE、AbsolutePage属性就可以了。
    当然也可以设置AbsolutePosition属性。
      

  4.   

    MSDN中的范例:AbsolutePage、PageCount 和 PageSize 属性范例 (VB)Public Sub AbsolutePageX()
        
        Dim rstEmployees As ADODB.Recordset
        Dim strCnn As String
        Dim strMessage As String
        Dim intPage As Integer
        Dim intPageCount As Integer
        Dim intRecord As Integer    ' Open a recordset using a client cursor
        ' for the employee table.
        strCnn = "Provider=sqloledb;" & _
            "Data Source=srv;Initial Catalog=Pubs;User Id=sa;Password=; "
        Set rstEmployees = New ADODB.Recordset
        ' Use client cursor to enable AbsolutePosition property.
        rstEmployees.CursorLocation = adUseClient
        rstEmployees.Open "employee", strCnn, , , adCmdTable
        
        ' Display names and hire dates, five records
        ' at a time.
        rstEmployees.PageSize = 5
        intPageCount = rstEmployees.PageCount
        For intPage = 1 To intPageCount
            rstEmployees.AbsolutePage = intPage
            strMessage = ""
            For intRecord = 1 To rstEmployees.PageSize
                strMessage = strMessage & _
                    rstEmployees!fname & " " & _ 
                    rstEmployees!lname & " " & _ 
                    rstEmployees!hire_date & vbCr
                rstEmployees.MoveNext
                If rstEmployees.EOF Then Exit For
            Next intRecord
            MsgBox strMessage
        Next intPage
        rstEmployees.CloseEnd Sub
      

  5.   

      解决了使用.AbsolutePosition解决的