熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

基於ASP.NET的自定義分頁顯示[3]

2013-11-13 10:59:16  來源: .NET編程 
    首先在數據庫中建立一個存儲過程該存儲過程接受兩個輸入參數分別是要返回數據的第一條記錄數和最後一條記錄數要創建一個返回指定條記錄結果的存儲過程首先必須指定返回結果集的條記錄數這裡用table變量(SQL Server table變量盡管是存儲在內存中的但在存儲過程結束後自動釋放創建的存儲過程如下

create proc InsertStudents
@Student_Last_Name as varchar() = null
@StartRow as int = null
@StopRow as int = null
AS
   建立有標識符列的table變量

declare @t_table table
(
[rownum] [int] IDENTITY ( ) Primary key NOT NULL
[Student_Last_Name] [varchar] ()
[Student_First_Name] [varchar] ()
)
   在返回指定的@StopRow行數之後停止處理查詢

Set RowCount @StopRow
   插入到table變量中

insert @t_table
(
[Student_Last_Name][Student_First_Name]
)
SELECT [Student_Last_Name][Student_First_Name]
FROM Students
WHERE Student_Last_Name like % + @Student_Last_Name like %
ORDER BY Student_Last_Name
   返回到正確的結果

SELECT * FROM @t_table WHERE rownum >= @StartRow
ORDER BY rownum
GO
  參數@StartRow和@StopRow接收整數值代表要返回的開始記錄和結束記錄如果要在一個條記錄的頁面中返回第我們就可以設置@StartRow為@StopRow為

  table變量@t_table中定義了一個叫rownum的整數類型的列並指定為標識符列它將在插入數據的時候自動增加起到排序作用Set RowCount語句是優化性能的關鍵它會告訴SQL Server進行限制要插入的數據如果我們要條記錄之間的數據那麼就可以不必插入大於條記錄的數據最後的SQL語句通過@t_table的table變量選擇rownum大於或者等於@StartRow的那些數據集然後把它們返回到Web服務器由Web服務器綁定到DataGrid對象但如果浏覽者請求的頁數越來越大需要向table變量填充的記錄就越多導致頁面性能有所下降因此性能將依賴於你計算機的硬件和你要返回的記錄數但為了減輕數據庫和網絡傳輸的壓力設計合理的查詢結果頁數是很見效的

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/14928.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.