亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

ASP.NET和MSSQL高性能分頁實例代碼

2024-08-31 01:03:37
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了ASP.NET和MSSQL高性能分頁實例代碼的相關資料,需要的朋友可以參考下
 

首先是存儲過程,只取出我需要的那段數據,如果頁數超過數據總數,自動返回最后一頁的紀錄:

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Clear-- Description: 高性能分頁-- http://www.cnblogs.com/roucheng/-- =============================================Alter PROCEDURE [dbo].[Tag_Page_Name_Select]-- 傳入最大顯示紀錄數和當前頁碼@MaxPageSize int,@PageNum int,-- 設置一個輸出參數返回總紀錄數供分頁列表使用@Count int outputASBEGINSET NOCOUNT ON;DECLARE-- 定義排序名稱參數@Name nvarchar(50),-- 定義游標位置@Cursor int-- 首先得到紀錄總數Select @Count = count(tag_Name)FROM [viewdatabase0716].[dbo].[view_tag];-- 定義游標需要開始的位置Set @Cursor = @MaxPageSize*(@PageNum-1)+1-- 如果游標大于紀錄總數將游標放到最后一頁開始的位置IF @Cursor > @CountBEGIN-- 如果最后一頁與最大每次紀錄數相等,返回最后整頁IF @Count % @MaxPageSize = 0BEGINIF @Cursor > @MaxPageSizeSet @Cursor = @Count - @MaxPageSize + 1ELSESet @Cursor = 1END-- 否則返回最后一頁剩下的紀錄ELSESet @Cursor = @Count - (@Count % @MaxPageSize) + 1END-- 將指針指到該頁開始Set Rowcount @Cursor-- 得到紀錄開始的位置Select @Name = tag_NameFROM [viewdatabase0716].[dbo].[view_tag]orDER BY tag_Name;-- 設置開始位置Set Rowcount @MaxPageSize-- 得到該頁紀錄Select * From [viewdatabase0716].[dbo].[view_tag]Where tag_Name >= @Nameorder By tag_NameSet Rowcount 0END 

然后是分頁控件(... 為省略的生成HTML代碼方法):

using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Text;/// <summary>/// 擴展連接字符串/// </summary>public class ExStringBuilder{private StringBuilder InsertString;private StringBuilder PageString;private int PrivatePageNum = 1;private int PrivateMaxPageSize = 25;private int PrivateMaxPages = 10;private int PrivateCount;private int PrivateAllPage;public ExStringBuilder(){InsertString = new StringBuilder("");}/// <summary>/// 得到生成的HTML/// </summary>public string GetHtml{get{return InsertString.ToString();}}/// <summary>/// 得到生成的分頁HTML/// </summary>public string GetPageHtml{get{return PageString.ToString();}}/// <summary>/// 設置或獲取目前頁數/// </summary>public int PageNum{get{return PrivatePageNum;}set{if (value >= 1){PrivatePageNum = value;}}}/// <summary>/// 設置或獲取最大分頁數/// </summary>public int MaxPageSize{get{return PrivateMaxPageSize;}set{if (value >= 1){PrivateMaxPageSize = value;}}}/// <summary>/// 設置或獲取每次顯示最大頁數/// </summary>public int MaxPages{get{return PrivateMaxPages;}set{PrivateMaxPages = value;}}/// <summary>/// 設置或獲取數據總數/// </summary>public int DateCount{get{return PrivateCount;}set{PrivateCount = value;}}/// <summary>/// 獲取數據總頁數/// </summary>public int AllPage{get{return PrivateAllPage;}}/// <summary>/// 初始化分頁/// </summary>public void Pagination(){PageString = new StringBuilder("");//得到總頁數PrivateAllPage = (int)Math.Ceiling((decimal)PrivateCount / (decimal)PrivateMaxPageSize);//防止上標或下標越界if (PrivatePageNum > PrivateAllPage){PrivatePageNum = PrivateAllPage;}//滾動游標分頁方式int LeftRange, RightRange, LeftStart, RightEnd;LeftRange = (PrivateMaxPages + 1) / 2-1;RightRange = (PrivateMaxPages + 1) / 2;if (PrivateMaxPages >= PrivateAllPage){LeftStart = 1;RightEnd = PrivateAllPage;}else{if (PrivatePageNum <= LeftRange){LeftStart = 1;RightEnd = LeftStart + PrivateMaxPages - 1;}else if (PrivateAllPage - PrivatePageNum < RightRange){RightEnd = PrivateAllPage;LeftStart = RightEnd - PrivateMaxPages + 1;}else{LeftStart = PrivatePageNum - LeftRange;RightEnd = PrivatePageNum + RightRange;}}//生成頁碼列表統計PageString.Append(...);StringBuilder PreviousString = new StringBuilder("");//如果在第一頁if (PrivatePageNum > 1){...}else{...}//如果在第一組分頁if (PrivatePageNum > PrivateMaxPages){...}else{...}PageString.Append(PreviousString);//生成中間頁 http://www.cnblogs.com/roucheng/for (int i = LeftStart; i <= RightEnd; i++){//為當前頁時if (i == PrivatePageNum){...}else{...}}StringBuilder LastString = new StringBuilder("");//如果在最后一頁if (PrivatePageNum < PrivateAllPage){...}else{...}//如果在最后一組if ((PrivatePageNum + PrivateMaxPages) < PrivateAllPage){...}else{...}PageString.Append(LastString);}/// <summary>/// 生成Tag分類表格/// </summary>public void TagTable(ExDataRow myExDataRow){InsertString.Append(...);} 

調用方法:

//得到分頁設置并放入SessionExRequest myExRequest = new ExRequest();myExRequest.PageSession("Tag_", new string[] { "page", "size" });//生成Tag分頁ExStringBuilder Tag = new ExStringBuilder();//設置每次顯示多少條紀錄Tag.MaxPageSize = Convert.ToInt32(Session["Tag_size"]);//設置最多顯示多少頁碼Tag.MaxPages = 9;//設置當前為第幾頁Tag.PageNum = Convert.ToInt32(Session["Tag_page"]);string[][] myNamenValue = new string[2][]{new string[]{"MaxPageSize","PageNum","Count"},new string[]{Tag.MaxPageSize.ToString(),Tag.PageNum.ToString()}};//調用存儲過程DataTable myDataTable = mySQL.BatchGetDB("Tag_Page_Name_Select", myNamenValue, "Count");Tag.DateCount = (int)mySQL.OutputCommand.Parameters["@Count"].Value;Tag.Pagination();HeadPage.InnerHtml = FootPage.InnerHtml = Tag.GetPageHtml;for (int i = 0, j = myDataTable.Rows.Count; i < j; i++){Tag.TagTable(new ExDataRow(myDataTable.Rows));}TagBox.InnerHtml = Tag.GetHtml; 
 


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本精品视频在线观看| 国产精品成久久久久三级| 中文字幕av一区二区三区谷原希美| 久久亚洲综合国产精品99麻豆精品福利| 亚洲精品福利视频| 亚洲男人天堂手机在线| 神马久久桃色视频| 伊人青青综合网站| 亚洲精品国产精品自产a区红杏吧| 日韩av影视综合网| 欧美第一黄色网| 国产在线不卡精品| 久久国产精彩视频| 综合网日日天干夜夜久久| 7m第一福利500精品视频| 亚洲精品国产欧美| 国产精品视频26uuu| 久热精品视频在线观看一区| 欧美亚洲激情视频| 精品久久久久久亚洲国产300| 一区二区成人av| 亚洲精品中文字| 国产拍精品一二三| 亚洲国产成人精品电影| 岛国精品视频在线播放| 91性高湖久久久久久久久_久久99| 尤物tv国产一区| 久久久久亚洲精品成人网小说| 久久青草福利网站| 粉嫩老牛aⅴ一区二区三区| 韩国欧美亚洲国产| 欧美一区二三区| 性欧美办公室18xxxxhd| 国产精品久久久久av免费| 欧美视频在线免费| 亚洲国产天堂久久综合网| 日本高清+成人网在线观看| 亚洲天堂2020| 亚洲视频一区二区三区| 亚洲综合小说区| 欧美多人爱爱视频网站| 国产乱肥老妇国产一区二| 久久久久久久久久久久久久久久久久av| 大伊人狠狠躁夜夜躁av一区| 午夜精品久久久久久久99热| 亚洲第一天堂无码专区| 98精品国产高清在线xxxx天堂| 国产美女高潮久久白浆| 亚洲精品福利资源站| 不卡在线观看电视剧完整版| 亚洲最大的av网站| 中文字幕亚洲欧美日韩2019| 国产mv免费观看入口亚洲| 国产日韩欧美电影在线观看| 丝袜情趣国产精品| 亚洲第一在线视频| 66m—66摸成人免费视频| 日韩专区在线播放| 国产精品一二区| 97免费在线视频| 最新91在线视频| 久久伊人91精品综合网站| 国模精品一区二区三区色天香| 成人综合网网址| 国产精品久久91| 亚洲人成网站在线播| 国产精品自产拍在线观| 97色在线观看免费视频| 日韩免费av片在线观看| 国产精品偷伦视频免费观看国产| 日韩av手机在线看| 国产原创欧美精品| 欧美性猛交xxxx| yellow中文字幕久久| 欧美精品制服第一页| 国产精品扒开腿做爽爽爽男男| 亚洲欧美日韩一区二区三区在线| 日韩欧美精品在线观看| 亚洲国产精彩中文乱码av在线播放| 国产成人精品亚洲精品| 8x海外华人永久免费日韩内陆视频| 欧美性猛交xxxx免费看| 9.1国产丝袜在线观看| 亚洲精品福利免费在线观看| 日韩中文在线观看| 亚洲色图美腿丝袜| 日本一区二区在线播放| 国产偷国产偷亚洲清高网站| 伊人伊成久久人综合网站| 欧美日韩中文字幕综合视频| 国产成人综合av| 欧美一区在线直播| 国产伊人精品在线| 亚洲第一精品夜夜躁人人躁| 欧美午夜影院在线视频| 日韩美女毛茸茸| 97免费在线视频| 国产精品av在线播放| 国产欧美一区二区三区久久| 亚洲免费人成在线视频观看| 福利一区福利二区微拍刺激| 日韩精品在线免费观看| 国产美女被下药99| 国产成人精品av在线| 欧美—级高清免费播放| 欧美日韩日本国产| 亚洲xxxxx电影| 国产在线播放91| 国产精品久久久久久婷婷天堂| 亚洲精品理论电影| 日韩高清a**址| 日本精品免费一区二区三区| 欧美一区二区视频97| 久久久日本电影| 久久国产精品久久久久| 久久久亚洲网站| 亚洲高清免费观看高清完整版| 国产极品精品在线观看| 日韩中文有码在线视频| 日韩美女视频中文字幕| 日本高清+成人网在线观看| 91久久国产婷婷一区二区| 777777777亚洲妇女| 国产欧美精品va在线观看| 亚洲欧美制服另类日韩| 日韩免费黄色av| 97在线视频免费播放| 国产精品久久久久久久久影视| 一区二区三区视频免费| 久久久国产成人精品| 国产成人av在线| 一区二区三区美女xx视频| 91精品国产高清自在线| 成人激情视频网| 一夜七次郎国产精品亚洲| 欧美极品在线视频| 亚洲综合在线播放| 国产成人亚洲精品| 精品亚洲国产成av人片传媒| 久久天天躁狠狠躁老女人| 日本精品性网站在线观看| 日韩高清有码在线| 91超碰中文字幕久久精品| 欧美性xxxx| 欧美夜福利tv在线| 亚洲热线99精品视频| 午夜精品一区二区三区在线视频| 久久久久久久久网站| 精品久久久一区二区| 精品人伦一区二区三区蜜桃免费| 亚洲第一页在线| 成人淫片在线看| 欧美老肥婆性猛交视频| 日韩免费在线看| 91精品免费久久久久久久久| 日韩免费在线观看视频| 精品亚洲国产成av人片传媒| 2019亚洲日韩新视频| 亚洲free嫩bbb| 国产ts人妖一区二区三区| 欧美日韩亚洲视频一区| 国产一区二区三区视频免费| 国产69久久精品成人| 亚洲精品欧美极品|