程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 也談數據分頁問題

也談數據分頁問題

編輯:.NET實例教程

  前幾天,有人問我數據庫分頁斷號怎麼辦?
  
  我知道的無外乎兩種方法:
  
  1 臨時表,將所需數據插入臨時表並構造id
  
  2 SQLServer2005 rownumber()
  
  但是好多人還是使用2000的,我想到個點子,如下
  
  就是數據雖然段號,總該是有個標識,且叫做id
  
  傳入兩個參數@id,@pagenum給你的sp
  
  先判斷實際數據量(count(*))是不是=@pagenum
  
  如果不是的話,就依然向後搜索,用缺少的數據去union選擇出的數據
  
  我舉個例子
  
  如果你想每頁顯示10條
  
  如果你的數據剛好從1到10,那麼恭喜你,你不用費勁了
  
  如果不是,而是
  
  8 Cody Lazio 男 NULL 2000-09-07 23:48:21.000 否 NULL
  12 Neil Chiv 男 1978-01-23 08:04:05.000 2005-10-17 15:54:37.000 是 bgmcyj42w3iu4pUegQjXsXdYxrMTfZdRWlWPUb8i7j48ZMZXM22sX4dbiPXiQlcxTedeXudmi4884djcpbn81Uh2wvuXRhjl7gOo3XreUVRyfgczb2eijj78xf6iQcP0atyXoib5RuQUkYx3xbcvXMmWcbdm88eocKVYM031h3YTiQlbQlTO
  19 Allan Lanze 男 1974-04-07 22:25:07.000 2002-09-08 22:10:43.000 否 vrk3ZVQjhe14h4SnuVaNh3eNmojxhnNZ73WgdKsNhOSMrSQla1LnMTjpcL4NvNU4Qna0ivSb1vh4ThRiPMneS7i8co138X7qvafeay108OKfirZi2jfgmv6tOa1YKgN3rQ5pVuoiLcO01d2jdPk0ZiyhYfga8d92sMgaTbQYht4bzN3zgWayR44dwOQQPuhXbtegw
  22 Guy Dobb 男 1992-06-23 02:19:51.000 2006-12-18 06:18:49.000 是 NULL
  23 Buck Luzi 男 1958-04-29 04:39:12.000 2001-12-08 00:15:45.000 否 yUZfv5IEjyyco7aKikqijfUpvbusXXizdY6yKgkRyfckhQsUnoaqUqeKJSerkPhqvZKo9ROY68a0t1lch4h42SKxkqjRxi7w19YrsevtQkXm03nh89dS7xqcwUhnM1xvaRcLgcgYhi
  24 Allan Vogus 女 2000-04-11 19:42:15.000 2002-06-28 02:02:29.000 是 fVdMhSjhma3YQuZidNZjUbo1s0TMOtM8f23hnlhdNPXoLMWhkOQc2iqoTbRpmkRg
  27 Ted Paras 女 1988-01-29 03:31:58.000 2001-08-28 16:29:39.000 否 jM3aVKhr7fUf6z2KSzcSbssUNWhin1fp7vOyR7a9ZzlMsN5QkOyrccxOmM9gXlYM1LS5f41V1bZxMS8OtgShYfwwPnpfVa2Lbq8jYy
  30 Wally Camon 男 1985-06-12 11:49:55.000 NULL 是 apxRkg7ajIELa7esZ3mYkXQvfY3w1fYuZ7eVcRtePxq9bf1qz4LW1RWW32QQ5PKbQiVeO5vfzRgtOgQLfU80WgvLZzfarS1LiX4i1gZ4b3Sdgc1jugewyZzSndL9nWOalUuvU4qh4XfLf215Xxcc7vdzK7LSrRPbnaghSw1q7XUV6SX1Y
  42 JamIE Baine 女 1967-02-14 17:53:52.000 2000-10-16 12:02:16.000 否 歡迎光臨學網,收藏本篇文章 [1] [2]

$False$

gY3zXLU7j3Yetjfj3pd
  45 Buck NULL 女 1955-06-26 13:23:42.000 NULL 否 VknV35mihg5mP5lWKQS2bRUT3SwafmhadigiSpWfffK2UYj
  
  前面的數據是隨機的,所以比較亂,第一個數字就是id
  
  1-10之間就只有僅僅id=8這條數據,那你就麻了
  
  從id>10的數據裡選出top 9的在union,就ok了
  
  
  
  如果段號段的厲害那也有辦法,不如剛才8直接到1000,在加個判斷count(1)=9,not goto 再選過,直至出9條出來
  
  
  
  我說的有些亂,懶得寫啊。
  
  這裡沒代碼,也許會讓你失望。
  
  
  
  
  Trackback: http://tb.blog.csdn.Net/TrackBack.ASPx?PostId=1487469

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved