仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 385|回复: 7
打印 上一主题 下一主题

[学习教程] ASP网页编程之两个分歧数据库表的分页显现办理计划

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:35:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。程序完成功效:两个数据表的数据分页显现
比来我碰到一个对照少见的需求,不知人人是不是也有碰到过,说出来与人人分享.
客户需求:两部分数据,分离来自分歧地位的两个数据库中的两个表,界说为数据库DB1和DB2,表Table1和Tabel2,要将这两个表数据分离在页面的上半部分和下半部分显现,而且用统一个分页码,如第一部分数据不敷,将用第二部分数据弥补
/*代码*/
<%
SetobjConn1=Server.CreateObject("ADODB.Recordset")
SetobjConn2=Server.CreateObject("ADODB.Recordset")
objConn1.Open"PROVIDER=SQLOLEDB;DATASOURCE=localhost;UID=sa;PWD=123;DATABASE=DB1"
objConn2.Open"PROVIDER=SQLOLEDB;DATASOURCE=localhost;UID=sa;PWD=123;DATABASE=DB2"
Page=CLng(Request.QueryString("Page"))
ifpage=""then
page=1
endif
StrSQL1="select*fromTable1orderbyIDdesc"
StrSQL2="select*fromTable2orderbyIDdesc"
record_count1=Clng(objConn1.execute(StrSQL1)(0))失掉第一个表的纪录数
record_count2=Clng(objConn2.execute(StrSQL2)(0))失掉第二个表的纪录数
record_count=record_count1+record_count2失掉两个表的纪录数和
Ifrecord_count>0Then
page_size1=5默许第一个表部分数据的每页显现数
page_size2=5默许第二个表部分数据的每页显现数
page_count1=CInt(record_count1/page_size1)
If(record_count1Modpage_size1)<(page_size1/2)Thenpage_count1=page_count1+1失掉第一部分数据的页数
page_count2=CInt(record_count2/page_size2)
If(record_count2Modpage_size2)<(page_size2/2)Thenpage_count2=page_count2+1失掉第二部分数据的页数
ifCint(page_count2)=cint(page)then假定第二部分数据必定少,这里判定是不是以后页是少的那分数据的最初一页
thepageRecordcount=record_count2-(page-1)*5第二部分数据的最初一页的数据显现条数
page_size1=10-cint(thepageRecordcount)第一部分数据在第二部分最初页的显现条数
page_size1=cint(thepageRecordcount)失掉第一部分在本页的显现条数
elseifcint(page)>cint(page_count2)then这以后将满是第一部分数据
page_size1=10
page_size2=0
endif
page_count=CInt(record_count/(page_size1+page_size2)全体两类一同的分页数
If(record_countMod(page_size1+page_size2))<((page_size1+page_size2)/2)Thenpage_count=page_count+1
IfPage<1Then
Page=1
EndIf
IfPage>page_countThen
Page=page_count
EndIf
DimPagefrom,Pageto
Pagefrom=page-10
Pageto=page+10
ifPagefrom<1then
Pagefrom=1
endif
ifPageto>record_countthen
Pageto=page_count
endif

EndIf

IfPage<=1Then第一页显现查询
StrSQL1="SelectTop"&page_size1&"*FromTable1"
StrSQL1=StrSQL1&"OrderByIDdesc"
StrSQl2="SelectTop"&page_size1&"*FromTable2"
StrSQL2=StrSQL2&"orderbyiddesc"
Else第N页显现查询
StrSQL1="SelectTop"&(Page-1)*page_size1&"IDFromTable1"
StrSQL1=StrSQL1&"OrderByidDesc"
StrSQL1="SELECTTop1IDFrom("&StrSQL1&")DERIVEDTBLOrderByid"
Response.Write(SQL)
id=Trim(objConn1.execute(StrSQL1)(0))
StrSQL1="SelectTop"&page_size1&"*FromTable1"
StrSQL1=StrSQL1&"whereid<"&id&""
StrSQL1=StrSQL1&"OrderByidDesc"

StrSQL2="SelectTop"&(Page-1)*page_size2&"idFromTable2"
StrSQL2=StrSQL2&"OrderByidDesc"
StrSQL2="SELECTTop1idFrom("&StrSQL2&")DERIVEDTBLOrderByid"
id=Trim(objconn2.execute(StrSQL2)(0))
StrSQL2="SelectTop"&page_size2&"*FromTable2"
StrSQL2=StrSQL2&"whereid<"&id&""
StrSQL2=StrSQL2&"OrderByidDesc"
EndIf
%>
<%
Ifrecord_count>0Then
%>
<%
SetRs1=Server.CreateObject("Adodb.Recordset")
rs1.openStrSQL1,objconn1
Forn=1Topage_size1
Ifrs1.EofThenExitFor
%>
<!--显现的第一部份内容轮回-->
<%
rs1.MoveNext
Ifrs1.EOFThenExitFor
Next
rs1.close
setrs1=nothing
%>
<%
SetRs2=Server.CreateObject("Adodb.Recordset")
rs2.openStrSQL2,objconn2
Forn=1Topage_size2
Ifrs2.EofThenExitFor
%>
<!--显现的第二部份内容轮回-->
<%
rs2.MoveNext
Ifrs2.EOFThenExitFor
Next
rs2.close
setrs2=nothing
%>
<!--了局页码-->
<%ifpage"1"then%><ahref=?page=<%=Cint(page-1)%>>上一页</a><%endif%>
<%用for轮回来写出页数毗连
Fori=PagefromtoPageto
ifi=0then
i=1
endif
ifiCint(page)then
strurl="<ahref=?page="&i&"><fontcolor=#000000>"&i&"</font></a>"
else
strurl="<b><fontcolor=#ce0031>"&i&"</font></b>"
endif
response.writestrurl
response.write""
next
%>
<%ifpage_count=1or(page_count-Cint(page))=0then
response.Write("")
else
response.Write"<ahref=?page="&Cint(page+1)&">下一页</a>"
endif
%>
<!--了局页码-->
/*代码停止*/
自己程度无限,程序粗拙,大概有不敷的地方~看品评斧正~
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。
爱飞 该用户已被删除
沙发
发表于 2015-1-19 17:52:06 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
若天明 该用户已被删除
板凳
发表于 2015-1-25 21:57:03 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
柔情似水 该用户已被删除
地板
发表于 2015-2-4 06:30:06 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
5#
发表于 2015-2-9 17:45:19 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
莫相离 该用户已被删除
6#
发表于 2015-3-9 05:10:27 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
再现理想 该用户已被删除
7#
发表于 2015-3-16 20:54:06 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
谁可相欹 该用户已被删除
8#
发表于 2015-3-23 01:51:35 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 21:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表