仓酷云

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

[学习教程] ASP网页编程之用ASP制造本性化的查询拜访板(附源程序)

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

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

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

x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。如今,在网上做查询拜访已非常广泛了,良多贸易网站的网页上常放有各类主题的查询拜访板,一些贸易网站也收费为网友供应查询拜访板,好比:广博(poll.bodachina.com)。由于收集的提高,网上查询拜访常常能到达较好的效果。在本人的团体站点上放一个兴趣成绩查询拜访板,实在能为网站添色很多;何况经由过程查询拜访了局你能更多更正确懂得网友对本人站点的意见。作为Webmaster,假如你的网站也必要就某个主题举行查询拜访,而你又厌恶利用他人收费供应的查询拜访板(收费常常是要支付价值的,好比打告白!),那末我倡议你花十几分钟工夫看完这篇先容用ASP制造查询拜访板的文章。你只需把文中的代码Copy到你的机子上,稍做修正,你当即就具有一个属于你本人的本性化查询拜访板。好了,打起精力往下看吧。
  本查询拜访板共有三个文件:显现查询拜访成绩(research.html)、处置用户选择(select.asp)、扫瞄查询拜访了局(viewresult.asp)。计划思绪为:ASP获得由表单发来的信息,并据此修正纪录查询拜访得票数的数据库,然后ASP读取数据库,取得各个查询拜访成绩的得票数量,经由过程得票数几来调治对应条形图显现的宽来直不雅比例地给出查询拜访了局。在程序的关头处,我都给出了较为具体的正文,这里就不再报告ASP的基础常识。读者能够到陶吧ASP专栏查阅。固然,我但愿你在本人的服务器上调试程序时,有不懂的中央,仍是查查身旁的ASP手艺手册,看看工具、办法或函数的具体语法试着修正,看看了局怎样变更――这但是进修编程的一个好办法呢。

1、显现查询拜访成绩(research.html)

  查询拜访成绩的计划要根据实践情形,或考究有用性或考究兴趣性,在网页上显现的作风也或朴实或活跃,本例中是笔者主页上的一个关于“21世纪最主要的是甚么?”的兴趣查询拜访,为申明成绩,上面的代码中省略了美妙润色的代码,你本人下手计划时完整可使用表格等技能丑化查询拜访成绩的显现。为了使提交或扫瞄查询拜访时不影响以后页面,程序中给出了弹出新窗口的计划。
researchindex.html:

<html>
<title>查询拜访板测试</title>
<head>
<!--start:界说新开的窗口-->
<scriptlanguage=javascript>
<!--
varnewWindow=null
functionOpenWindow(htmurl)
{
if(!newWindow||newWindow.closed)
{
newWindow=
window.open(htmurl,"newwin","toolbar=no,resizable=no,scrollbars=no,width=400,height=280");
}else
{
newWindow.focus();
}
}
//-->
</script>
<!--end:界说新开的窗口-->
</head>
<body>
<!--start:查询拜访标题、选项 -->
<p>您以为21世纪最主要的是甚么?</p>
<formmethod="POST"action="vote/select.asp"name="research"LANGUAGE="javascript"
target="newwin">
<palign="left">
<br>
<inputtype="radio"value="1"name="Options">常识(常识就是力气)<br>
<inputtype="radio"value="2"name="Options">学历(学历社会没有闭幕)<br>
<inputtype="radio"value="3"name="Options">款项(经济就是基本)<br>
<inputtype="radio"value="4"name="Options">恋爱(永不进进宅兆的恋爱)<br>
<inputtype="radio"value="5"name="Options">幻想(天啦,幻想是甚么)<br>
<inputtype="radio"value="6"name="Options">平易近主张识(体贴政治)<br>
<inputtype="radio"value="7"name="Options">迷信头脑(科教兴国)<br>
<inputtype="submit"value="提交"name="voting">
<inputtype="button"value="检察"name="viewing">
</form>
<!--start:查询拜访标题、选项 -->
</body>
</html>

2、处置用户选择(select.asp)

  根据下面的查询拜访选项,我们得出纪录查询拜访得票的数据库researchdb.mdb的计划(以Access为例),表名为:research。假如你的数据库和表没有存为以上的名字,那末在前面的程序和操纵中你不要健忘也响应修正过去。

寄存查询拜访投票数的表research:

字段名 数据范例 默许值
id   主动编号  1
select1 数字    0
select2 数字    0
select3 数字    0
select4 数字    0
select5 数字    0
select6 数字    0
select7 数字    0


  建好数据库后,我们来在服务器上创建数据源。起首,运转“把持面板”中的“ODBC”,选择“体系DSN”,按“增加”按钮,拔取“MicrosoftAccessDriver”,选定后按“完成”按钮,然后在ODBC设定中“数据源名”输出框输出数据库称号,本例中为researchdb,然后按下“拔取”按钮选择数据库文件(你不会说你健忘了方才计划的数据库存在那边了吧),选定后按“断定”,你便可看到新建的数据源 researchdb。如许,我们就能够在ASP中挪用了。
select.asp:

<%
上面的if语句是经由过程考证selected是不是为空来判别用户是不是作了选择
ifrequest.form("options")Emptythen
%>

<%
上面的if语句是经由过程对照Request的两个collection(ServerVariables和Cookies)的值
来避免用户一连按提交而影响查询拜访的了局
ifnotRequest.ServerVariables("REMOTE_ADDR")=request.cookies("IPAddress")then
把会见客户的IP信息写进Cookies
response.cookies("IPAddress")=Request.ServerVariables("REMOTE_ADDR")
%>
<%
创建毗连(Connection)工具,翻开纪录查询拜访了局的数据库
setconn=server.createobject("ADODB.CONNECTION")
conn.open"researchdb"
%>

<%
界说变量
dimrs
dimsql
dimselected
selected=request.form("options")
创建纪录汇合(Recordset)工具,用办法Open翻开工具,同时修正对应的数据
setrs=server.createobject("adodb.recordset")
修正数据表ressearch中的数据,即对应的投票数增添1
sql="updateresearchsetselect"&selected&"=select"&selected&"+1whereid=1"
rs.opensql,conn,3,3
从内存中扫除纪录汇合工具
setrs=nothing
封闭毗连
conn.close
从内存中扫除毗连工具
setconn=nothing
毗连到扫瞄查询拜访了局的页面
response.redirect"viewresult.asp"
else
Response.write"投票失利提醒:您方才已投了票,感谢您的撑持!"
endif
else
Response.write"投票失利提醒:您健忘选择了!"
endif
%>

3、扫瞄查询拜访了局(viewresult.asp)

  本例中利用条形图来直不雅显现查询拜访了局,办法是用选项的投票数占总投票数的百分比值乘上5,得出的值作为条形图http://edu.cnzz.cn/NewsInfo/bar.gif显现的宽(可用罕见的图像工具制造一个突变色的小条形图,或是到网上down一个)。为了给出带两为小数的得票的百分比,程序中利用了VBScript中的四舍五进函数Round。为了美妙,把查询拜访了局放到表格中显现,如图所示。上面给出的代码中略往了表格的计划。

viewresult.asp
<%
setconn=server.createobject("ADODB.CONNECTION")
conn.open"researchdb"
%>
<%
dimrs
dimsql
dimselect1
dimselect2
dimselect3
dimselect4
dimselect5
dimselect6
dimselect7
dimtotal
setrs=server.createobject("adodb.recordset")
sql="select*fromresearchwhereid=1"
rs.opensql,conn,1,1
total=rs("select1")+rs("select2")+rs("select3")+rs("select4")+rs("select5")+rs("select6")+rs("select7")
判别总票数是不是为0,确保上面的除法无效
iftotal>0then
select1=(rs("select1")/total)*100
select2=(rs("select2")/total)*100
select3=(rs("select3")/total)*100
select4=(rs("select4")/total)*100
select5=(rs("select5")/total)*100
select6=(rs("select6")/total)*100
select7=(rs("select7")/total)*100
%>
<p>感谢您的介入,上面是以后的查询拜访了局
<p>
◇常识:
height=4>
<%=rs("select2")%>人占:<%=round(select2,2)%>%<br>
◇款项:
height=4>
<%=rs("select4")%>人占:<%=round(select4,2)%>%<br>
◇幻想:
height=4>
<%=rs("select6")%>人占:<%=round(select6,2)%>%<br>
◇迷信头脑:
<imgsrc=http://edu.cnzz.cn/NewsInfo/bar.gifwidth=<%=int(select7)%*5>height=4>
<%=rs("select7")%>人占:<%=round(select7,2)%>%</p>

<palign="center">已有:<%=total%>人列入查询拜访<br><br>
【<ahref="javascript:window.close()">封闭窗口</a>】</p>
<p>
<%
else
response.write"还没有人介入查询拜访"
endif
rs.close
setrs=nothing
conn.close
setconn=nothing
%>

附注:
  以上代码均在WindowsNT4.0中文(Pack6)/IIS4.0上调试经由过程。
  以下任何一种情况都可实行ASP:
   1、WindowsNTServer4.0 / IIS3.0以上
   2、WindowsNTWorkStation4.0/MicrosoftPeerWebService3.0以上
   3、Windows95/98/MicrosoftPersonalWebServer1.0a以上

ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-25 21:19:24 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
只想知道 该用户已被删除
板凳
发表于 2015-2-4 03:08:44 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
admin 该用户已被删除
地板
发表于 2015-2-9 13:21:08 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
飘灵儿 该用户已被删除
5#
发表于 2015-2-27 06:37:11 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
爱飞 该用户已被删除
6#
发表于 2015-3-8 23:06:11 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
蒙在股里 该用户已被删除
7#
发表于 2015-3-16 17:36:40 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
分手快乐 该用户已被删除
8#
发表于 2015-3-22 23:52:39 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 03:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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