国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Asp.net 通用萬級數據分頁代碼[修正下載地址]

2024-07-10 13:21:43
字體:
來源:轉載
供稿:網友
1.主題,Asp.net環境下,通用的數據分頁(包括Oracle,SqlServer,DB2...)
很久以前,就想做一個通用點的數據分頁組件,但苦于一直沒有充足的時間,所以遲遲沒有實現(當然,主要是因為有一定的難度,要處理視圖狀態,回傳事件,自繪等...),"十一"期間,陪女朋友去了躺"湘西",白天游山玩水,晚上無事,吃吃當地的夜宵,無聊之際,google了一把Oracle的數據分頁,竟然沒有一個完整的關于Asp.net + Oracle數據分頁的例子,要不就是有版本問題,索性決定自己弄一個.
2.環境
IDE;vs2008+asp.net2.0 or 3.0+Oracle9i
Oracle測試數據;41萬多條
帶寬;網通說是有2M的帶寬,其實TNND只有100多KB
3.原理
利用Oracle9i的RowNum獲取我們想要的數據,如圖3.1

復制代碼 代碼如下:


public IEnumerable GetPageSqlByOracle(string sql, int startRowIndex, int maximumRows, string orderBy)
{
string sqlFormat = string.Format("select * from (select rownum rn, pageTable.* from {0} pageTable where rownum <={1}) where rn>{2}", sql, startRowIndex + maximumRows, startRowIndex);

return ydjwOracleConn.RetriveDataSet(sqlFormat).Tables[0].DefaultView;
}


startRowIndex表示開始索引,maximumRows表示要獲取的每頁記錄數目.

然后把分頁后的數據綁定到ObjectDataSource組件,如下圖

    

4.效果

Asp.net 通用萬級數據分頁代碼[修正下載地址]

 

4.1 支持多排序,比如時間,比如身份證明號碼等

Asp.net 通用萬級數據分頁代碼[修正下載地址]

4.2 41萬多條數據

4.3 單條件查詢,第一次用時1.547秒

Asp.net 通用萬級數據分頁代碼[修正下載地址]

4.4 第二次,用時1.515秒

Asp.net 通用萬級數據分頁代碼[修正下載地址]

第三次差不多,就不貼了.

4.5 看看不帶條件的查詢,一次把41萬條數據全部查詢出來使用的時間

Asp.net 通用萬級數據分頁代碼[修正下載地址]

可以看到,不帶條件查詢41萬條數據,第一次用時1.265秒.

Asp.net 通用萬級數據分頁代碼[修正下載地址]


4.6 可以看到不帶條件查詢41萬條數據,第二次用時1.156秒
4.7 可用SqlServer,或者Db2等數據庫代替,只需要修改 圖3.1獲取數據的方法,其他地方不用動.
5.需要注意的地方
5.1 記得數據量上萬時,一定要加索引,否則要等得"花謝花開".
5.2 ObjectDataSource的所有參數名稱,一定要和綁定的方法參數名稱,順序一致.
5.3 能用緩存的,盡量用緩存
5.4 SqlServer的分頁算法,就不說了,替換一下圖3.1的方法就行
5.5 因為數據庫文件實在太大,不方便下載,有興趣的朋友自己弄一張表就OK,加上webconfig中的數據庫連接配置
6.下載
測試Demo下載  【已修正】
7.后話
該說的都說了,希望對大家能有所幫助啟發,還有就是此測試Demo還沒有加緩存,有興趣的朋友可以加上,歡迎大家討論,批評,指導...

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善左旗| 清远市| 金塔县| 波密县| 西峡县| 太原市| 区。| 长阳| 福清市| 大理市| 双牌县| 遵义市| 麦盖提县| 唐海县| 霍州市| 鄂托克前旗| 鲁甸县| 罗甸县| 扶风县| 曲阜市| 乐清市| 德令哈市| SHOW| 鹤峰县| 马公市| 田阳县| 自贡市| 红桥区| 广宗县| 蒙城县| 民权县| 长泰县| 莱芜市| 天全县| 韶山市| 南通市| 兴文县| 汶川县| 中西区| 东平县| 泰州市|