DataGrid连接Access的快速分页法(1)——需求与现状
生活随笔
收集整理的這篇文章主要介紹了
DataGrid连接Access的快速分页法(1)——需求与现状
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:黎波
一、需求分析
???? DataGrid是一個功能強大的ASP.NET Web服務器端控件,它除了能夠按各種方式格式化顯示數據,還可以對數據進行動態的排序、編輯和分頁。大大減輕了廣大Web程序員的工作量。實現DataGrid的分頁功能一直是很多入門者感到棘手的問題,特別是自定義分頁功能,實現的方法多種多樣,非常靈活。 ? ???? 目前大家公認性能最好的應該數SQL Sever結合存儲過程的解決方案。因為在SQL Server的存儲過程里面可以使用游標(Cursor)來遍歷數據庫表中所有的行,結合一個計數器變量就可以快速定位到數據庫表中的某一行了。但是在采用Access數據庫的ASP.NET應用程序中,一直沒有一種較好的解決方案。 ? ???? 我們知道,在ASP中可以使用ADO的游標來快速定位當前頁面的數據在數據庫表中的位置。可是ADO.NET中沒有游標這個東西,所以傳統的DataGrid分頁方法都是用諸如“SELECT * FROM Item”的SQL語句從數據庫表中取出所有的記錄,然后DataGrid的自動分頁功能會幫你顯示相應分頁的數據。二、目前的解決方案
???? 很多人已經意識到了上面描述的問題,并提出了解決方法,即采用自定義分頁,每次從數據庫表中取出要顯示的數據。那么,怎樣取呢?答案就我知道的大概有5種以上吧。使用不同的算法,將會得到不同的效率。經過我粗略的測試,最慢的算法耗費的時間大概是最快的3倍!而且這個數字會隨著記錄總數的增加而增加。 ? ???? 為了方便接下來的討論,在展示 SQL 語句之前,首先讓我們做如下約定: ? PageIndex | ItemId | ProductId | Price |
| 0 | 001 | 0011 | $12 |
| 002 | 0011 | $13 | |
| 003 | 0011 | $12 | |
| 1 | 004 | 0012 | $13 |
| 005 | 0012 | $11 | |
| 006 | 0012 | $14 | |
| 2 | 007 | 0013 | $14 |
| 008 | 0013 | $12 | |
| 009 | 0014 | $13 | |
| 3 | 010 | 0011 | $13 |
| 011 | 0012 | $15 | |
| 012 | 0014 | $16 | |
| 4 | 013 | 0013 | $12 |
| 014 | 0013 | $13 |
| 變量 | 用途 |
| @PageSize | 每頁顯示的記錄總數 |
| @PageCount | 分頁總數 |
| @RecordCount | 數據表的記錄總數 |
| @PageIndex | 當前頁的索引 |
| @FirstIndex | 第一頁的索引 |
| @MiddleIndex | 中間頁的索引 |
| @LastIndex | 最后一頁的索引 |
| @TableName | 數據庫表名稱 |
| @PrimaryKey | 主鍵字段名稱 |
| @QueryFields | 要查詢的字段集 |
| @Condition | 篩選條件 |
總結
以上是生活随笔為你收集整理的DataGrid连接Access的快速分页法(1)——需求与现状的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DataGrid基于Access的快速分
- 下一篇: DataGrid连接Access的快速分