Web應用程序是顯示數據庫中數據的一個非常好的方法,通過它,你可以把業務復雜,並有訪問和安全規則的數據庫數據以一種簡單、直觀的方式向用戶提供查詢和更新的功能。用戶判斷數據庫應用程序一個很常用的標准就是處理數據的快慢。許多Web頁面都向用戶提供了多種可搜索的列表顯示來有效地定位記錄的位置,一個比較簡單而且常用的例子就是在線圖書查詢系統,它允許用戶可以按作者,按書名或者按主題來檢索圖書信息。
ASP.Net提供了一個DataGrid控件可以比以前的ASP方便地創建創建數據列表,DataGrid控件除了內建的數據表現和方法之外,還允許用戶自己定義表現形式。分頁技術為用戶可管理的數據查找提供方便。DataGrid內建的分頁技術很容易實現,但數據量很大時,它的方便性是以犧牲性能為代價的。下面,我們就看看如何通過自定義的分頁方法來實現快速處理大量數據的結果集的辦法。我們這裡討論的方法比DataGrid的默認分頁方法是快速和更加有效的,這是因為每次請求不需要把全部的數據結果發送到Web服務器。相反,它只需要發送每個頁面需要的那些數據集。例如:如果一個用戶只要求100個頁面中每頁顯示25條記錄的第4頁的結果集,服務器只需要發送第75-100行的數據即可,而不是1-1000行的完全數據。默認的傳送方式如圖1所示:
從圖中可以看出,DataGrid的內建分頁方法是效率不高的,每次請求都必須把整個查詢結果發送給Web服務器,Web服務器再把數據分成相應的頁面。利用DataGrid的內建的分頁方法盡管是很簡單的,但是,由於Web應用的無序性特征,一個用戶每次從一個頁面轉向另外一個頁面時,DataGrid對象都被銷毀並重新創建,這就意味著數據庫服務器每次都必須發送全部的結果集。
自定義的分頁方法只返回所要檢索的那些結果集,如下圖2所示:
從上面的圖中可以看到,數據庫每次只需要返回所要顯示的數據記錄。