資源描述:
《sql簡(jiǎn)單分頁教程實(shí)例》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、SQL簡(jiǎn)單分頁教程(簡(jiǎn)單級(jí))--ByQqlikelqqlike@126.com聲明:本文檔為作者所有,免費(fèi)共享,不得用于商業(yè),任何責(zé)任與作者無關(guān)。轉(zhuǎn)載請(qǐng)注明出處。Star-------------------------------------------使用工具:Vs2008+SQL2005數(shù)據(jù)庫(kù)用的SQL2005的master數(shù)據(jù)庫(kù)表為dbo.spt_values分頁前提:請(qǐng)確保有一定SQL基礎(chǔ)原理:本分頁方法為SQL分頁,簡(jiǎn)單的來說就是從前端獲取要查看數(shù)據(jù)的開始行數(shù)和結(jié)束行數(shù),用開始行數(shù)和結(jié)束行數(shù)做條件寫SQL查詢語句。1.首先寫好DBhelper(非重點(diǎn)
2、)1.數(shù)據(jù)層(重點(diǎn))難點(diǎn):注意SQL語句,我們的SQL分頁語句關(guān)鍵就是ROW_NUMBER()OVER(ORDERBYnumberdesc)ASRow這個(gè)句子和between@starand@end這個(gè)句子這個(gè)句子就是說把查詢出來的數(shù)據(jù)按照number這個(gè)列重新排列,并顯示生成列(我稱它為排序列),而每一條數(shù)據(jù)則對(duì)應(yīng)自己的排列順序數(shù)。而我們的分頁重點(diǎn)就是根據(jù)生成的行數(shù)在根據(jù)條件between@starand@end來選擇數(shù)據(jù)。從而實(shí)現(xiàn)分頁很多單表有主鍵,如果要分頁查詢比如說有一個(gè)表主鍵列ID而我們則可以寫slect*from表whereidbetween‘sta
3、rRow’and‘endRow’從而實(shí)現(xiàn)查詢好了如果還不懂請(qǐng)郵件聯(lián)系我而面對(duì)多表聯(lián)合查詢,那么難點(diǎn)就是怎么把查詢排序列給添加上從而實(shí)現(xiàn)分頁。好了后臺(tái)寫好了我們則需要在前臺(tái)獲得查詢的開始行數(shù)和結(jié)束行數(shù)1.前臺(tái)(獲得開始行數(shù)和結(jié)束行數(shù))前臺(tái)我用的Gridview顯示用了一個(gè)分頁自定義控件用于獲得開始行數(shù)和結(jié)束行數(shù)效果如下關(guān)于自定義控件~~額~~~請(qǐng)到本人網(wǎng)絡(luò)E盤去下載去下載www.lqqlike.ys168.com的分頁控件目錄下密碼為123456下載完請(qǐng)記得留言分頁控件不會(huì)附加的請(qǐng)百度存放位置為看代碼首先獲得所有記錄行數(shù),以便分頁控件計(jì)算所有行數(shù)每頁數(shù)等等然后再初
4、始化讀取5條數(shù)據(jù)然后綁定到Gridview上。關(guān)于分頁控件在把它從工具中拖放到頁面上然后雙擊生成事件然后代碼如下這部分的難點(diǎn)就是計(jì)算出要查詢數(shù)據(jù)的開始行數(shù)和結(jié)束行數(shù)首先我們要計(jì)算出結(jié)束行數(shù)為什么呢因?yàn)榻Y(jié)束行數(shù)最好算每頁顯示行數(shù)*當(dāng)前頁就可以得到結(jié)束行數(shù)而開始行數(shù)則的結(jié)束行數(shù)減去每頁顯示行數(shù)而顯示的時(shí)候是從第1,6,11開始的所以要加上1還不懂怎么計(jì)算出的自己到高中數(shù)學(xué)老師那請(qǐng)罪去~~~~看注釋??偨Y(jié):其實(shí)分頁很簡(jiǎn)單的而難點(diǎn)就是分頁SQL語句以及獲得前端如何獲得查詢數(shù)據(jù)的開始行數(shù)和結(jié)束行數(shù)。當(dāng)然最最重要的就是分頁控件。其實(shí)現(xiàn)在網(wǎng)上啊的分頁控件都差不多都是提供獲得每
5、頁記錄數(shù)和當(dāng)前在第幾頁的方法的。所以這個(gè)SQL分頁從這些方面講是通用的。當(dāng)然~~~~這些都是簡(jiǎn)單的一個(gè)例子最簡(jiǎn)單不過而通常業(yè)務(wù)中的SQL語句動(dòng)則多表查詢這就需要你掌握足夠的SQL知識(shí)然后在給每條查詢出來的數(shù)據(jù)賦予行數(shù)。歡迎各位讀者提出意見(請(qǐng)發(fā)送到我郵箱里面)本小編歡迎大家提意見。一同進(jìn)步。還有在打開SQL語句后你可以把這段SQL語句放到查詢分析器里面去~會(huì)有驚喜selectrow,[name],number,[type],low,highfrom(selectROW_NUMBER()OVER(ORDERBYnumberdesc)ASRow,*fromdbo.s
6、pt_values)twhererowbetween5and12上面的SQL語句小編測(cè)試過不會(huì)報(bào)錯(cuò)