仓酷云

标题: ASP网站制作之ASP编程入门进阶(二十):ADO组件之分... [打印本页]

作者: 柔情似水    时间: 2015-2-16 00:27
标题: ASP网站制作之ASP编程入门进阶(二十):ADO组件之分...
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧ado|编程|法式|分页|ado|分页   应当来讲,学会了若何拔出纪录,若何显示纪录,那末如今复杂的完全的文章体系、旧事体系和留言体系不成成绩。那接着上面的成绩就是:跟着信息内容的不段增添,独自经由过程一张页面显示一切信息是不可也是很不睬性的。所以,处理的举措就是采取分页手艺。

1,rs.RecordCount
很明显,RecordCount就是用来显示数据库表中一共几何笔记录的,也能够抽象地说表中一共有几何行。常常用在分页中就是一共有N篇文章等总计的信息显示。

2,rs.PageSize
rs.PageSize也就是一页的巨细,也就暗示一张ASP页可以显示纪录的条数。值是本人界说的,好比常常看到的每页显示N篇文章之类的信息。

3,rs.AbsolutePage 和 rs.pagecount
说到分页,必定不克不及不提到 rs.AbsolutePage 。纪录集的AbsolutePage属性最次要的感化就是决意着以后显示的是第几页。它的值是有根据的,指定了rs.PageSize,那末rs.pagecount的信息值就是rs.RecordCount和rs.PageSize整除了局。好比:总信息纪录rs.RecordCount共20条,每页显示条数rs.PageSize设为5条,那末页数rs.pagecount数就是20/5=4页次,而rs.AbsolutePage则就只能是第1页,第2页……第4页。

说到如今,弄个详细法式来调试一下。持续对showit.asp停止修正以下:


<!--#include file="conn.asp" -->

<%
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from cnarticle order by cn_id desc"
rs.Open sql,conn,1,1
%>

<%
page=request.querystring("page") 'page值为承受值
rs.PageSize = 2 '每页显示纪录数
rs.AbsolutePage = Page '显示以后页等于吸收的页数
%>

<%
For i = 1 to rs.PageSize '使用for next 轮回顺次读出以后页的纪录
if rs.EOF then
Exit For
end if
response.write("<br>文章内容是:"& rs("cn_content"))
rs.MoveNext
next%>

<%
rs.close
Set rs = Nothing
conn.close
set conn=nothing
%>




HERE,你调试的条件就是数据库中的纪录绝对要大于4条,如许测试后果才分明;还有测试的办法就是在showit.asp前面添加?page=1或?page=2等调试察看网页显示后果。

其实,说究竟,显示数据库内容就是


<%
For i = 1 to rs.PageSize
if rs.EOF then
Exit For
end if
response.write("<br>文章内容是:"& rs("cn_content"))
rs.MoveNext
next%>



起的感化,但想象一下:该法式应当都只能显示出2条信息(一向不变的2条信息)。但为何加上?page=1和?page=2会显示分歧的了局呢?……那相对就是rs.AbsolutePage的感化了。这个弄清晰,信任分页的全体架构就有点端倪了。



<!--#include file="conn.asp" -->

<%
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from cnarticle"
rs.Open sql,conn,1,1
%>

<%filepath=request.servervariables("path_info")%>
<%
page=request.querystring("page") 'page值为承受值
rs.PageSize = 2 '每页显示纪录数
if Not IsEmpty(page) then '假如page已初始化...
if Not IsNumeric(page) then '判别page值是不是为数字
page=1
else
Page = cint(page) '吸收page并化为数字型赋给page变量
end if
if Page > rs.PageCount then '假如吸收的页数大于总页数
rs.AbsolutePage = rs.PageCount '设置以后显示页等于最初页
elseif Page <= 0 then '假如page小于等于0
rs.AbsolutePage = 1 '设置以后显示页等于第一页
else
rs.AbsolutePage = Page '假如大于零,显示以后页等于吸收的页数
end if
else
rs.AbsolutePage=1
end if
Page = rs.AbsolutePage%>

<%
For i = 1 to rs.PageSize '使用for next 轮回顺次读出以后页的纪录
if rs.EOF then
Exit For
end if
response.write("文章题目是:"& rs("cn_title"))
response.write("<br>文章作者是:"& rs("cn_author"))
response.write("<br>文章到场工夫是:"& rs("cn_time"))
response.write("<br>文章内容是:"& rs("cn_content"))
response.write("<hr>")
rs.MoveNext
Next
%>

<form action="<%=filepath%>" method="get">
<!--起首包管总页数不为1、不为0-->
<%if rs.pagecount<>1 and rs.pagecount<>0 then%>
<!--假如以后页数大于1,不管什么时候都应显示首页和上一页的毗连-->
<%if page>1 then%>
[<a Href="<%=filepath%>?Page=<% = 1%>">首页</a>]
[<a Href="<%=filepath%>?Page=<% = page -1 %>">上一页</a>]
<!--假如以后页数大于1而且小于总页面数时,显示出尾页和下一页的毗连-->
<%if page<rs.pagecount then %>
[<a Href="<%=filepath%>?Page=<% = page + 1%>">下一页</a>]
[<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾页</a>]
<!--假如以后页数大于1而且仍大于或等于总页面数时,不显示出尾页和下一页的毗连-->
<%else%>
[下一页] [尾页]
<%end if%>
<!--不然,以后页数不大于1,则只显示尾页和下一页的毗连-->
<%else%>
[首页] [上一页]
[<a Href="<%=filepath%>?Page=<% = page + 1%>">下一页</a>]
[<a Href="<%=filepath%>?Page=<% = rs.PageCount%>">尾页</a>]
<%end if %>
<!--终究,总页数若为1、为0则没有任何毗连-->
<%else%&</p>  asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。
作者: 小妖女    时间: 2015-2-16 03:45
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 深爱那片海    时间: 2015-2-18 11:43
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
作者: 只想知道    时间: 2015-3-6 19:40
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 分手快乐    时间: 2015-3-7 09:15
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
作者: 简单生活    时间: 2015-3-14 16:15
那么,ASP.Net有哪些改进呢?
作者: 兰色精灵    时间: 2015-3-14 16:15
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: 小女巫    时间: 2015-3-15 05:07
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: 第二个灵魂    时间: 2015-3-21 18:30
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
作者: 若天明    时间: 2015-4-1 11:38
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
作者: 乐观    时间: 2015-4-13 23:23
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
作者: 不帅    时间: 2015-4-22 16:51
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
作者: 再见西城    时间: 2015-4-26 06:49
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
作者: 变相怪杰    时间: 2015-4-28 02:28
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 飘灵儿    时间: 2015-5-4 08:44
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
作者: 飘飘悠悠    时间: 2015-6-11 02:29
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
作者: 小魔女    时间: 2015-6-24 01:16
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 愤怒的大鸟    时间: 2015-6-24 21:14
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 因胸联盟    时间: 2015-7-7 15:21
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2