ASP.NET处理数据分页(2)
发表于:2007-06-30来源:作者:点击数:
标签:
四. 第二种分页浏览数据记录的关键步骤以及实现方法: 其实这二种分页方法在程序设计中是大同小异的,在第二种方法中,其前面的关键步骤中和第一种分页几乎相同,也是要得到浏览数据记录的总数,设定每一页要显示的数据记录个数,计算出总共有多少数据页面等
四. 第二种分页浏览数据记录的关键步骤以及实现方法: 其实这二种分页方法在程序设计中是大同小异的,在第二种方法中,其前面的关键步骤中和第一种分页几乎相同,也是要得到浏览数据记录的总数,设定每一页要显示的数据记录个数,计算出总共有多少数据页面等等。这些步骤的实现方法可以参考第一种方法。第二种分页方法和第一种分页方法的主要区别在于数据导航的实现方法上。下列代码功能是实现第二种分页方法数据导航:
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
开发数据库程序有所帮助。
原文转自:http://www.ltesting.net