這個分頁主要優點如下: 1、大容量下的數據分頁,我 " /> 国产精品野外AV久久久,亚洲 自拍 偷拍 另类综合图区 ,男的插曲女的下面免费APP

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

asp.net安全、實用、簡單的大容量存儲過程分頁第1/2頁

基本上我下面要講述的側重點是如何使用,因為其實分頁存儲過程網上很多,如果你懶得找,那么可以直接使用下面這個我經過測試,并通過修改,網上評價都比較高的分頁存儲過程。

這個分頁主要優點如下:
1、大容量下的數據分頁,我的測試數據是520W。
2、我結合ASPNETpager控件,使得使用起來更加方便。
3、為了結構清晰,實用3層。
4、安全,你就放心的用吧。SQL注入的問題在這里你可以放心了。網上有文章說只要存儲過程是用sql拼接的就存在sql注入的問題,并且直接在sql查詢分析器中測試了注入的情況。其實是不對的,采用存儲過程和參數化的提交語句并沒有sql注入的問題。因為它進數據庫的時候會有替換的過程。

準備工作:
1、直接使用一個DB庫,數據訪問層基類,用它返回一個dataset對象,使用的時候我們只需要類似下面的語句就可以返回一個dataset對象。
sosuo8.DBUtility.DbHelperSQL.RunProcedure("pagination",parameter,"userinfo");
pagination是我在網上找的存儲過程,我進行了修改的,主要是添加輸出總記錄數。這里總記錄數也特意說一下,一般我們都是使用類似下面的語句:
復制代碼 代碼如下:
sosuo8.DBUtility.DbHelperSQL.RunProcedure("pagination",parameter,"userinfo");

pagination是我在網上找的存儲過程,我進行了修改的,主要是添加輸出總記錄數。這里總記錄數也特意說一下,一般我們都是使用類似下面的語句:
復制代碼 代碼如下:
select count(*) from sosuo8data

這里我又要說兩句,網上有網友說使用count(某列),例如count(userName)會比count(*)快也是不對,如果找的列不對,那么并不會比count(*)快。而count(*)會自動幫我們查找可以實現最快統計的那列,而其實在使用中,一般就是我們的那個主鍵id,count(id)是最快的。
2、建立數據庫data_test,建立兩個表:
(1)、userinfo這個表用來放數據。
復制代碼 代碼如下:
CREATE TABLE [dbo].[userinfo](
[id] [int] IDENTITY(1,1) NOT NULL,
[userName] [nchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[userWebName] [nchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[createDate] [datetime] NULL CONSTRAINT [DF_userinfo_createDate] DEFAULT (getdate()),
CONSTRAINT [PK_userinfo] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

id是自遞增,且是聚合索引。OK?開始往數據庫中添加520W條記錄:
復制代碼 代碼如下:
set identity_insert userinfo on -- 標識可以插入自遞增列
declare @count int
declare @date datetime
set @count=1
set @date = '2009-4-5 00:00:00'
while @count<=5200000
begin
insert into userinfo(id,userName,userWebName,createDate) values(@count,'阿會楠','sosuo8.com',@date)
set @count=@count+1
set @date=@date+'00:00:01'--加一秒,避免重復,否則會造成分頁不準確的情況,排序的字段切忌不要出現過多重復值
end
set identity_insert userinfo off

如果你的電腦配置比較一般,千萬不要嘗試,否則可能會當機;如果沒當機,那耐心等下,插入這么多條記錄需要一點時間。
(2)tmp表用來存放無搜索條件時的總記錄數。這里我要說下,為什么需要一個表用來專門存放總記錄數,總記錄數你可以在后臺每隔一段時間就去更新一次,把最新的總記錄數寫進去。否則的話,520W的記錄你每次都要用count(id)那么耗費的時間也不少。

建表的語句如下:
復制代碼 代碼如下:
CREATE TABLE [dbo].[tmp](
[id] [int] IDENTITY(1,1) NOT NULL,
[rowCount_tmp] [int] NULL,
[table_tmp] [varchar](255) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_tmp] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

這里不得不提一下,為什么只要取得表的行總記錄數,而不在存儲過程里面把分頁都算好。因為我們就將采用ASPNETpager這個控件,這個控件我們只需要傳入3個值,函數定義如下:
復制代碼 代碼如下:
public DataSet GetList(int PageIndex, string strWhere,ref int rowCount)

PageIndex:當前頁,對應ASPNETpager中的CurrentPageIndex
strWhere:搜索的條件,這篇文章將不重點講搜索部分。所以代碼中用string.Empty,大容量下的數據搜索那需要另寫一篇文章來說明。
rowCount:總記錄數,由存儲過程重新返回。

AspNet技術asp.net安全、實用、簡單的大容量存儲過程分頁第1/2頁,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 三级叫床震大尺度视频 | 日韩大胆视频 | 国产视频成人 | 免费A级毛片无码无遮挡内射 | 国产偷国产偷亚洲高清SWAG | write as 跳蛋 | 学校捏奶揉下面污文h | 好紧好湿太硬了我太爽了文字 | 入禽太深视频免费视频 | 久久亚洲伊人中字综合精品 | 8x华人免费视频 | 人人干人人爽 | 久久这里只有精品国产精品99 | 一区二区视频在线观看高清视频在线 | 亚洲精品久久久992KVTV | 四虎影视国产精品亚洲精品 | 国产69精品久久久熟女 | 性色少妇AV蜜臀人妻无码 | 暖暖视频中国在线观看免费韩国 | 美女逼逼毛茸茸 | 成在线人免费视频 | 国产精品亚洲高清一区二区 | 蜜桃TV成人网站免费打开 | 国产无遮挡色视频免费观看性色 | 在线视频 国产 日韩 欧美 | 精品久久久99大香线蕉 | 日本理论片午午伦夜理片2021 | 兔费看少妇性L交大片免费 偷偷要色偷偷 | 少妇人妻偷人精品视蜜桃 | 一级毛片视频免费 | 伊人免费在线 | 国产性色AV内射白浆肛交后入 | 花蝴蝶在线观看免费中文版高清 | 亚洲不卡一卡2卡三卡4卡5卡 | 亚洲视频无码高清在线 | 末班车动漫无删减免费 | 日本69xxxx| 榴莲推广APP网站入口官网 | 国产真实乱对白精彩 | 海角国精产品一区一区三区糖心 | 亚洲欧美日韩高清中文在线 |