乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Recordset資料表分頁(yè)

       悟靜 2009-07-17
      Recordset資料表分頁(yè) - 小瓜瓜 首頁(yè)
      ●用ADO去讀取很大的資料庫(kù)時(shí),若沒(méi)有用SQL語(yǔ)法去做篩選時(shí),所得到的資料表會(huì)拖慢執(zhí)行的效能,ADO的執(zhí)行效能還算不錯(cuò),但最花時(shí)間的則是由ADO的Recordset裡把資料提出來(lái)作顯示的動(dòng)作,解決方法就是不要一次就列出所有的資料,以每一次只顯示個(gè)幾筆的方式來(lái)減少顯示大批資料所浪費(fèi)的時(shí)間。

      ●在這裡,將會(huì)學(xué)到如何用程式碼把一個(gè)資料表分成好幾頁(yè)來(lái)顯示:

      ●這是這一次的主角!
      (一般)
      Dim MyDBS As New ADODB.Connection '在這裡宣告是讓ADODB.Connection可跨過(guò)不同的Sub與Function
      Dim MyRec As New ADODB.Recordset
      Private Sub Form_Load()
      MyDBS.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\database\db01.mdb"
      MyRec.PageSize = 15
      '設(shè)定每一頁(yè)有15筆
      MyRec.CursorType = adOpenStatic
      MyRec.Open "星座表", MyDBS
      MyPage = 1

       

      For I = 1 To MyRec.PageCount
      List2.AddItem I
      '算出有幾頁(yè),並列到List2里
      Next
      MyRec.Move (MyRec.RecordCount - 1) - ((1 - 1) * MyRec.PageSize)
      '假設(shè)資料有88筆而每頁(yè)15筆資料,若倒著回去算的話(huà)
      '第一頁(yè)的第一筆資料也就等於第88筆資料
      '而第一頁(yè)的第二筆一料就等於第87筆資料
      '依此類(lèi)推,第二頁(yè)的第一筆一料就是第 88 - 15筆資料
      '依此類(lèi)推,第三頁(yè)的第一筆一料就是第 88 - (15 * 2)筆資料

       

      For I = 1 To 15
      List1.AddItem MyRec.Fields(0) & Chr(9) & MyRec.Fields(1)
      MyRec.MovePrevious
      If MyRec.BOF Then Exit For
      Next
      End Sub
      Private Sub List2_Click()
      List1.Clear
      MyRec.AbsolutePosition = (MyRec.RecordCount - 1) - ((CInt(List2.Text) - 1) * MyRec.PageSize) + 1
      For I = 1 To 15
      List1.AddItem MyRec.Fields(0) & Chr(9) & MyRec.Fields(1)
      MyRec.MovePrevious
      If MyRec.BOF Then Exit For
      Next
      End Sub
      ●倒著載入資料庫(kù),每一頁(yè)就只有15筆。
      ●想看第五頁(yè)?我們就直接點(diǎn)5吧!

      ●要把他它移植到ASP前,先來(lái)練練簡(jiǎn)單的分頁(yè)技巧:
      <html>
      <body>
      <%
      TotalPage=15
      MyPage = Request("page")
      If MyPage = "" Then MyPage = 1
      Response.Write "現(xiàn)在是在第" & MyPage & "頁(yè)上<hr>"

       

      For I = 1 To TotalPage
      Response.Write "<a href=""page.asp?Page=" & I & """>" & "第" & I & "頁(yè)</a> "
      '在字串裡,兩個(gè) " 代表他是一個(gè) " 文字。
      Next
      %>
      </body>
      </html>

      ●按按頁(yè)數(shù),看看分頁(yè)的基本功能是否能正常運(yùn)作。

      ●成功了之後,移植到ASP裡:

      <html>
      <<body>
      <%
      Set MyDBS = CreateObject("ADODB.Connection")
      Set MyRec = CreateObject("ADODB.RecordSet")

       

      MyDBS.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\database\db01.mdb"
      MyRec.PageSize = 15
      MyRec.CursorType = 1
      '注意囉!這裡絕對(duì)是 1
      '因?yàn)锳SP Server看不懂沒(méi)有定義的常數(shù)
      '有些書(shū)上這裡會(huì)用常數(shù)代替,以致很多網(wǎng)友怎麼試都失敗
      '除非你有先做定義常數(shù):Const adOpenKeyset = 1 除外
      MyRec.Open "星座表", MyDBS

       

      MyPage = Request("page")
      If MyPage = "" Then MyPage = 1
      TotalPage = MyRec.PageCount
      Response.Write "現(xiàn)在是在第" & MyPage & "頁(yè)上<hr>"

       

      For I = 1 To TotalPage
      Response.Write "<a href=""page.asp?Page=" & I & """>" & "第" & I & "頁(yè)</a> "
      Next

       

      MyRec.Move (MyRec.RecordCount - 1) - ((MyPage - 1) * MyRec.PageSize)

       

      Response.Write "<Table width=100% border=1>"
      Response.Write "<tr><td>" & MyRec.Fields(0).Name & "</td>"
      Response.Write "<td>" & MyRec.Fields(1).Name & "</td>"
      Response.Write "<td>" & MyRec.Fields(2).Name & "</td>"
      Response.Write "<td>" & MyRec.Fields(3).Name & "</td>"
      Response.Write "<td>" & MyRec.Fields(4).Name & "</td></tr>"

       

      For I = 1 To 15
      Response.Write "<tr><td>" & MyRec.Fields(0) & "</td>"
      Response.Write "<td>" & MyRec.Fields(1) & "</td>"
      Response.Write "<td>" & MyRec.Fields(2) & "</td>"
      Response.Write "<td>" & MyRec.Fields(3) & "</td>"
      Response.Write "<td>" & MyRec.Fields(4) & "</td></tr>"
      MyRec.MovePrevious
      If MyRec.BOF Then Exit For
      Next
      Response.Write "</Table>"
      %>
      </body>
      </html>

      ●在程式的開(kāi)發(fā)過(guò)程中,資料表的欄位都有機(jī)會(huì)被增增減減,使用Recordset.Fields(欄位編號(hào))的寫(xiě)法並不妥,建議使用Recordset.Fields("欄位名稱(chēng)")的寫(xiě)法,如MsgBox RS.Fields("客戶(hù)名稱(chēng)")

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多