ASP.NET处理数据分页(2)

asp.net|分页|数据

四. 第二种分页浏览数据记录的关键步骤以及实现方法: 其实这二种分页方法在程序设计中是大同小异的,在第二种方法中,其前面的关键步骤中和第一种分页几乎相同,也是要得到浏览数据记录的总数,设定每一页要显示的数据记录个数,计算出总共有多少数据页面等等。这些步骤的实现方法可以参考第一种方法。第二种分页方法和第一种分页方法的主要区别在于数据导航的实现方法上。下列代码功能是实现第二种分页方法数据导航:  

Response.Write ( ' <p > 数据导航: ' )
  nPageEnd = nPage + 3
  If nPageEnd > nPageCount
  nPageEnd = nPageCount
  End If
  For i = 1 To nPageEnd
  If i = nPage Then
  Response.Write ( ' <b > ' & i.ToString ( ) & ' </b > ' )
  Else
  Response.Write ( '<A HREF = ''' & SCRIPT_NAME & _
  '?Page=' & ( i ).ToString ( )  & _
  ''' > ' & i.ToString ( ) & '</A > ' )
  End If
  Next
  
  If nPageEnd < nPageCount Then
  Response.Write ( '<A HREF = ''' & SCRIPT_NAME & _
  '?Page=' & ( nPageEnd + 1 ).ToString ( ) & _
  ''' >更多...</A > ' )
  End If  

五. 第二种分页浏览数据记录的完整源程序代码(no2.aspx):  

no2.aspx和no1.aspx在程序设计的思想和方法上大致相同,下面是no2.aspx的源程序,具体如下:  

<% @ Page Language = 'VB' %>
  <% @ Import Namespace = 'System.Data' %>
  <% @ Import Namespace = 'System.Data.OleDb' %>
  
  <script runat = 'server' >
  Const Record_Per_Page   As Short = 5 '定义每一页显示的记录数
  Private Script_Name As String  

Sub Page_Load ( Source As Object , e As EventArgs )
  Script_Name = GetPageName ( )
  '第二种方式来分页显示数据
  ShowRecords ( )
  End Sub
  
  '得到起始浏览超链接字符串
  Function GetPageName ( ) As String
  Dim Str As String
  Dim Pos As Short
  Str = Request.ServerVariables ( 'Script_Name' ).Trim ( )
  Pos = Str.LastIndexOf ( '/' )
  If Pos >= 0 Then
  Return Str.SubString ( Pos + 1 )
  Else
  Return Str
  End If
  End Function
  
  Private Sub ShowRecords ( )
  Dim strConn As String '定义数据连接字符串  
Dim SQL As String  '定义SQL语句
  Dim odConn As OleDbConnection
  Dim odAdapt As OleDbDataAdapter
  Dim DS As DataSet '创建DataSet对象
  Dim DT As DataTable '创建DataTable对象
  Dim nRecCount As Integer '保存记录总数
  Dim nPageCount As Integer '保存总共的数据页面数目
  Dim nPage As Integer '存放要浏览当前数据页面号
  Dim nStart As Integer '存放当前页面的起始记录序号
  Dim nEnd As Integer '存放当前页面的终止记录序号
  Dim nPageEnd As Integer '存储当前页面的最后一面的序号
  Dim i As Integer  
'确认要浏览的页面序号
nPage = Convert.ToInt32 ( Request.QueryString ( 'Page' ) )
  SQL = 'SELECT * FROM tblItem '
  
  '创建数据连接字符串
  strConn = ' Provider = Microsoft.Jet.OLEDB.4.0 ; ' & _
  ' Data Source = ' & Server.MapPath ( 'data.mdb' ) & ' ; ' & _
  ' User ID = ; Password = ; '
  Try
  '得到数据记录总数
  odConn = New OleDbConnection ( strConn )
  odAdapt = New OleDbDataAdapter ( SQL , odConn )
  DS = New DataSet
  odAdapt.Fill ( DS )
  DT = DS.Tables ( 0 )
  nRecCount = DT.Rows.Count
  Catch e As Exception
  Response.Write('错误信息: <b >' & e.Message & '</b > <p > ' )
  nRecCount = 0
  End Try
  
  If nRecCount > 0 Then
  ' 确定数据记录要显示的页面数
  nPageCount = nRecCount \ Record_Per_Page
  If nRecCount Mod Record_Per_Page > 0 Then
  nPageCount += 1
  End If
  
  '确认浏览命令中的页面参数是否越界,如果越界则重置页面序号
  If nPage < 1  Then
  nPage = 1  
End If
  If  nPage > nPageCount Then
  nPage = nPageCount  
End If
  
  Response.Write ( '总共有数据记录' & nRecCount.ToString ( ) & ' 条' & '。<br >' )
  Response.Write(' <p > <b >第二种分页显示为:</b > <p > ' )
  
  '确认当前页面的开始记录和终止记录
  nStart = Record_Per_Page *  ( nPage - 1 )
  nEnd = nStart + Record_Per_Page - 1
  If nEnd > nRecCount - 1 Then
  nEnd = nRecCount - 1
  End If
  '在屏幕中输出记录
  For i = nStart To nEnd
  Response.Write ( DT.Rows ( i ) ( 'ItemName' ) & ' <br > ' )
  Next
  End If
  Response.Write ( ' <p > 数据导航: ' )
  nPageEnd = nPage + 3
  If nPageEnd > nPageCount
  nPageEnd = nPageCount
  End If
  For i = 1 To nPageEnd
  If i = nPage Then
  Response.Write ( ' <b > ' & i.ToString ( ) & ' </b > ' )
  Else
  Response.Write ( '<A HREF = ''' & SCRIPT_NAME & _
  '?Page=' & ( i ).ToString ( )  & _
  ''' > ' & i.ToString ( ) & '</A > ' )
  End If
  Next
  
  If nPageEnd < nPageCount Then
  Response.Write ( '<A HREF = ''' & SCRIPT_NAME & _
  '?Page=' & ( nPageEnd + 1 ).ToString ( ) & _
  ''' >更多...</A > ' )
  End If
  End Sub
  </script >  

本文介绍的这二种分页浏览记录类型虽然采用的数据库都是本地数据库,但对其他类型的数据库也是一样适用的,这只需要修改一下数据连接字符串就可以实现了,譬如如果采用了SQL Server数据库。此SQL Server数据库服务器是'Server1',数据库是'Data',用户名为缺省的'sa',没有设定密码。只需要把上面二段程序中的字符串'strConn'变换成:  

strConn = 'Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = Data ; Data Source = server1 '  

就可以实现了。  

六. 总结:  

本文介绍的二种分页浏览数据记录方法在ASP.NET数据库编程方面是非常有用的,因为在数据处理方面,分页显示记录比起其他的一些处理,譬如:数据修改、删除等都要难些。希望上面的这些内容对你利用ASP.NET开发数据库程序有所帮助。

时间: 2024-12-10 04:16:10

ASP.NET处理数据分页(2)的相关文章

详解ASP.NET MVC数据分页

ASP.NET MVC框架已经进入2.0时代,本文将从ASP.NET MVC数据分页谈起,希望能对大家有所帮助. 在网页上进行表格资料或其他显示资料的分页是一种十分常见的需求,以前我们有 GridView 或 DataPager 可以帮我们自动分页,虽然到了 ASP.NET MVC 一切全部重头来过,但我们也不用真的那麽辛苦的自己实做分页,因为早就有人帮我们写好程式并开放原始码分享给这个世界了. 如果你已经体会到在 ASP.NET MVC 中妥善利用强型别(Strong Typed)特性进行开发

一起谈.NET技术,详解ASP.NET MVC数据分页

ASP.NET MVC框架已经进入2.0时代,本文将从ASP.NET MVC数据分页谈起,希望能对大家有所帮助. 在网页上进行表格资料或其他显示资料的分页是一种十分常见的需求,以前我们有 GridView 或 DataPager 可以帮我们自动分页,虽然到了 ASP.NET MVC 一切全部重头来过,但我们也不用真的那麽辛苦的自己实做分页,因为早就有人帮我们写好程式并开放原始码分享给这个世界了. 如果你已经体会到在 ASP.NET MVC 中妥善利用强型别(Strong Typed)特性进行开发

asp的通用数据分页类_ASP CLASS类

 (原创)<!--#include file="Conn.asp" --> 通用数据分页类     通用分页类,以后写分页显示数据时就轻松多啦.直接调用此类,然后再Execute即可以取得当前页的所有数据.     此类所做的工作是只取得当前页的数据,和总页数和总记录数等等数据. ASP代码: <% '/*****************************分页显示类************************** '/* 作者:哇哇鱼 '/* 日期:2004

ASP.NET处理数据分页(1)

asp.net|分页|数据 在ASP的数据库编程的时,由于浏览器的大小限制,在要浏览的数据记录比较多的时候,为了达到更直观的效果,我们把这些数据记录分成若干的页面,通过数据导航按钮(或者其他超链接),分页的浏览.其实这种数据记录的分页浏览在ASP.NET也能够实现.并且在实现的过程中比起在ASP的处理过程显得条理更清晰,也更容易些.   通过浏览器进行分页浏览数据记录基本类型主要有二种.其他类型的分页浏览要么是对这二种类型的修改,要么是对这二种类型的综合.具体表现方式的如下面这二幅图:   下面

asp.net 数据分页控件(不用存储过程)

asp教程.net 数据分页控件(不用存储过程) 本分页控件原理 分页的方法很多,有用存储过程的,有不用存储过程的,还有在c#中用datagridview的虚拟模式的,目的只有一个,对大数据量进行处理,让用户体验得到提高,软件速度得到提升.本分页控件主要是用了下面的sql语句,我相信你能看懂的,存储过程分页也是用类似的sql代码:    1 /*tablename           :表名            如:tbtestdata  2   sqlwherestatement   :sq

ASP实现Oracle数据记录的分页显示程序

oracle|程序|分页|数据|显示 本文仔细的阐述了利用ASP实现Oracle数据记录的分面显示步骤. 一.引言 通过浏览器访问数据量大的表时需要进行分页.ASP对数据库记录分页显示可以通过ADO对象集Recordset对象来实现.Recordset具有以下几个用于分页显示的属性: PageSize:每页显示的记录数. PageCount:根据用户设定好的PageSize和表中的总记录数,系统自动算出总页数.RecordCount:表中的总记录数. AbsolutePage:表示当前页码.如将

打造一个通用ASP.NET数据分页控件

asp.net|分页|控件|数据 对于几乎所有的数据表现Web应用来说,组织好数据的显示方式.避免给用户带来混乱的感觉就是最主要的目标之一.每个页面显示20条记录当然是可以接受的,但每页显示10000条记录就很容易给用户带来不便了.将数据分成多个页面显示,即对数据进行分页,是解决此类问题的最常见的办法. 一.慨述 ASP.NET本身只提供了一个支持数据分页的控件,即DataGrid分页控件,不过它比较适合Intranet环境使用,对于Internet环境来说,DataGrid分页控件提供的功能似

利用ASP实现Oracle数据记录的分页显示

oracle|分页|数据|显示 一.引言 通过浏览器访问数据量大的表时需要进行分页.ASP对数据库记录分页显示可以通过ADO对象集Recordset对象来实现.Recordset具有以下几个用于分页显示的属性: PageSize:每页显示的记录数. PageCount:根据用户设定好的PageSize和表中的总记录数,系统自动算出总页数.RecordCount:表中的总记录数. AbsolutePage:表示当前页码.如将AbsolutePage属性设为3,则当前记录移至第3页第1条(也就是第3

ASP.net 2.0 自定义控件的开发之数据分页 第一章

asp.net|分页|控件|数据  本文将向大家介绍使用ASP.net 2.0 开发自定义的数据分页控件 数据分页的好处 1.减少网络流量 2.提高运行效率在大数据量时,数据分页是一个必须面对的现实,没有哪个客户愿意花上几分钟或更多的时间来等待.数据分页也有多种方式比如内存分页 SQL Server 存储过程分页等,这里将向大家介绍的是 SQL Server 存储过程分页方式,并结合ASP.net 2.0 的来编写一个通用的数据分页控件.本文使用的存储过程来自 http://www.codepr