vb改成asp

leiziaitudou 2009-11-22 02:16:38
<script language="VB" runat="server">
'定义若干页面级变量和常量,主要用来分页
Dim conn As OleDbConnection '数据库连接对象变量
Dim PageSize As Integer '每行显示多少条记录
Dim StartPosition As Integer '从第几条记录开始显示
Dim CurrentPage As Integer '当前显示第几页
Dim TotalPage As Integer '该变量用来表示总共多少页

Sub Page_Load(Sender As Object, E As EventArgs)
'建立Connection对象
conn= New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("guest.mdb"))
'从web.Config文件中读取数据
PageSize=ConfigurationSettings.AppSettings("PageSize")

'如果没有提交表单,就执行下面的绑定函数
If Not Page.IsPostBack Then
'下面调用函数,绑定数据
Call BindData()
End If
End Sub

'数据绑定过程,供其它函数调用
Sub BindData()
'在绑定数据之前,先计算得到有关变量**************************************************************

'先调用函数,返回总共有多少页
TotalPage=GetTotalPage()

'计算当前要显示的页
If Request.QueryString("commandname")<>"" Then
'这种情况表示选择了上一页或下一页,因此从Session中读取,并根据具体情况加1或减1
Select Case Request.QueryString("commandname")
Case "first"
CurrentPage=1
Case "prev"
CurrentPage=CInt(Session("CurrentPage"))-1
If CurrentPage<1 Then CurrentPage=1 '如果小于1,当然应该显示第1页
Case "next"
CurrentPage=CInt(Session("CurrentPage"))+1
If CurrentPage>TotalPage Then CurrentPage=TotalPage '如果大于总数,就显示最后页
Case "last"
CurrentPage=TotalPage
End Select
'选择完毕,重新将页码保存到Session中
Session("CurrentPage")=CurrentPage
ElseIf Not (Session("CurrentPage") Is Nothing) Then
'这种情况表示没有选择下面的页码,但也不是刚打开页面,可能是提交了表单,或者从回复和删除页面返回。
'此时应该从Session中读取。(当然,如果要考虑复杂,还可以细分各种情况)
CurrentPage = Session("CurrentPage")
Else
'这种情况表示刚刚打开页面,还没有提交或选择页码,因此另其为1
CurrentPage=1
Session("CurrentPage")=CurrentPage
End If

'下面开始绑定数据***********************************************************************************
Dim adp As New OleDbDataAdapter("select * from guest order by submit_date Desc", conn) '建立DataAdapter对象
Dim ds As New DataSet() '建立DataSet对象

'计算从第几条记录开始显示,应该是当前页的第1条记录,请仔细理解其中的数学计算
'注意记录索引从0开始

StartPosition=(CurrentPage-1)*PageSize

'这里的Fill方法有4个参数,第2个表示从第几行开始,第3个表示总共要多少行
adp.Fill(ds,StartPosition,Pagesize,"guest") '填充DataSet对象

MyRepeater.DataSource=DS.Tables("guest").DefaultView '指定数据源
MyRepeater.DataBind() '执行绑定

'下面设置有关显示总页数和当前显示页数信息*************************************************************
theCurrentPage.Text=CurrentPage.Tostring
theTotalPage.Text=TotalPage.Tostring
End Sub

'该函数用来返回总共有多少页
Function GetTotalPage()
'下面先返回总共有多少条记录
Dim TotalRecord As Integer
Dim strsql As String = "select count(*) as total From guest"
Dim cmd As New OleDbCommand(strsql, conn)
conn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader
If dr.Read() Then
' intCount = Int32.Parse(dr.Item("total").ToString)
TotalRecord = dr.Item("total")
Else
TotalRecord = 0
End If
Conn.Close()
'下面计算总共有多少页
If (TotalRecord Mod PageSize)=0 Then
'如果能整除,则
GetTotalPage=TotalRecord/PageSize '返回函数值
Else
'如果不能整除,则用整除\并+1
GetTotalPage=TotalRecord\PageSize+1 '返回函数值
End If
End Function

这些代码谁给该成ASP
我感谢了
...全文
63 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
leiziaitudou 2009-11-22
  • 打赏
  • 举报
回复
vC#的

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧