仓酷云

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

[学习教程] ASP网页设计用ASP+Access制造论坛教程

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。access|asp+|教程  在网上先容怎样编写制造论坛的文章很多,但据我察看年夜多半的代码都有分歧水平的毛病,会误导人人。以是我写这篇文章的目标就是把经由我测试乐成的代码与思绪供应给人人。上面就让我们从数据库的创建入手下手:

  用access创建数据库:

  起首我们要创建一个寄存帖子的数据库,在这里我先容用access2000创建数据库的办法。

  我们先要创建一个名为news.mdb的数据库文件,然后在个中点“新建”选择“计划视图”创建两个表,一个名为details用来寄存复兴,另外一个名为titles用来寄存主题如图:





  制造历程详解:

  在titles中创建以下字段,如图:



  注重:
1右键单击“titleID”选择“主键”,呈现钥匙图形。2这里的“shu”不成以改成“number”不然会呈现毛病,王国容的那本《asp&web数据库》中就犯了如许的毛病。3将“日期/工夫”范例的字段的默许值都设为now()
  在titles中创建以下字段,如图:





  将“日期/工夫”范例的字段的默许值都设为now()。创建完成后,要设置这两个表的联系关系。点击

按钮,呈现以下对话框:




  将titles中的titleID拖至details中的titleID上放手,呈现以下对话框:(如图设置)



  然后保留就能够了。如许一个供应贮存的数据库就创建好了。接上去我们要编写asp程序了。起首让我们先来剖析论坛所必要的功效。也许必要以下几个功效:
1显现主题2公布主题3显现复兴4公布复兴
  因而,我们依据这些功效,必要编写6个asp文件:
  title.asp、titlenew.asp、titleout.asp、detail.asp、detnew.asp、detout.asp
  另有一个文件是必须的(在我的程序中)adovbs.inc,它供应程序中的常数值如:“adopenstatic”。(点击这里下ADOVBS.INC载源文件)每一个文件的代码:

  title.asp:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="CP_ACP"%>
<!--#includevirtual="adovbs.inc"-->
<!--#includefile="titleout.asp"-->
<%
   consthead="我的论坛"
   dbpath=server.MapPath("news.mdb")
   setconn=server.CreateObject("adodb.connection")
   conn.open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&dbpath
   sql="selecttitleID,createdateas主题公布工夫,lastnewsdateas最初复兴工夫,nameas作者,shuas复兴篇数,subjectas主题fromtitlesorderbylastnewsdatedesc"
   setrs=server.CreateObject("adodb.recordset")
   rs.opensql,conn,adopenstatic
%>
<html>
<head>
<title><%=head%></title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<styletype="text/CSS">
<!--
body{ font-family:"宋体";font-size:12px}
table{ font-family:"宋体";font-size:12px}
a:link{ font-family:"宋体";font-size:12px;color:#000000;text-decoration:none}
a:visited{ font-family:"宋体";font-size:12px;color:#666666;text-decoration:none}
a:hover{ font-family:"宋体";font-size:12px;color:#ff3300;text-decoration:underline}
-->
</style>
</head>
<body>
<!--输入主题-->
<% 
          rs.pagesize=10
          page=clng(request("page"))
          ifpage<1thenpage=1
          ifpage>rs.pagecountthenpage=rs.pagecount
%>
<formaction="title.asp"method="get">
   <tableborder="0"cellpadding="0"cellspacing="0"width="90%">
       <tr>
          <tdalign="right"width="100%">
   <%
       ifpage1then
          response.Write("<ahref=title.asp?page=1>第一页</a>")
          response.Write("<ahref=title.asp?page="&(page-1)&">上一页</a>")
       endif
       ifpagers.pagecountthen
          response.Write("<ahref=title.asp?page="&(page+1)&">下一页</a>")
          response.Write("<ahref=title.asp?page="&rs.pagecount&">最初一页</a>")
       endif
   %>
   转到第<inputtype="text"name="page"size="3">页
   页码:<fontcolor="#FF0000"><%=page%></font>/<fontcolor="#FF0000"><%=rs.pagecount%></font>
          </td>
       </tr>
   </table>
</form>
<center>
<tableborder="0"bgcolor="#999999"cellpadding="3"cellspacing="1"width="780">
   <trbgcolor="#00FFFF">
       <tdheight="18"width="150"align="center">主题公布工夫</td>
       <tdheight="18"width="350"align="center">主题</td>
       <tdheight="18"width="100"align="center">作者</td>
       <tdheight="18"width="30"align="center">复兴</td>
       <tdheight="18"width="150"align="center">最初复兴工夫</td>
   </tr>
<%
   OnErrorResumeNext
   rs.absolutepage=page
   fori=1tors.pagesize
       titleoutputrs
       rs.movenext
       ifrs.eofthenexitfor
   next
%>
</table>
</center>
<formaction="title.asp"method="get">
   <tableborder="0"cellpadding="0"cellspacing="0"width="90%">
       <tr>
          <tdalign="right"width="100%">
   <%
       ifpage1then
          response.Write("<ahref=title.asp?page=1>第一页</a>")
          response.Write("<ahref=title.asp?page="&(page-1)&">上一页</a>")
       endif
       ifpagers.pagecountthen
          response.Write("<ahref=title.asp?page="&(page+1)&">下一页</a>")
          response.Write("<ahref=title.asp?page="&rs.pagecount&">最初一页</a>")
       endif
   %>
   转到第<inputtype="text"name="page"size="3">页
   页码:<fontcolor="#FF0000"><%=page%></font>/<fontcolor="#FF0000"><%=rs.pagecount%></font>
          </td>
       </tr>
   </table>
</form>
<!--上面为输出表单-->
<formaction="titlenew.asp"method="post">
   <center>
       <tableborder="0">
          <tr>
             <td>姓名:</td>
             <td><inputtype="hidden"size="30"name="name"value="<%=session("name")%>"><%=session("name")%></td>
          </tr>
          <tr>
             <td>信箱:</td>
             <td><inputtype="text"size="30"name="Email"value="<%=session("Email")%>"></td>
          </tr>
          <tr>
             <td>主题:</td>
             <td><inputtype="text"size="60"name="subject"></td>
          </tr>
          <tr>
             <td>内容:</td>
             <td><textareaname="words"rows="8"cols="60"></textarea></td>
          </tr>
          <tr>
             <tdalign="center"colspan="2"><inputtype="submit"value="提交">
             <inputtype="reset"value="清空"></td>
          </tr>
       </table>
   </center>
</form>
</body>
</html>

titlenew.asp:

<%@LANGUAGE="VBSCRIPT"CODEPAGE="CP_ACP"%>
<!--#includevirtual="adovbs.inc"-->
<%
   dbpath=server.MapPath("news.mdb")
   setconn=server.CreateObject("adodb.connection")
   conn.open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&dbpath
   name=request("name")
   Email=request("Email")
   subject=request("subject")
   words=request("words")
   ifsubject=""orwords=""orname=""orEmail=""then
       outputmsg="字段不克不及为空,请填写完全信息!"
   else
       setrs=server.CreateObject("adodb.recordset")
       rs.open"titles",conn,adopendynamic,adlockpessimistic
       rs.addnew
          rs("name")=name
          rs("Email")=Email
          rs("subject")=subject
          rs("words")=words
          rs("shu")=0
       rs.update
       outputmsg="您的主题已到场!"
       session("name")=name
       session("Email")=Email
   endif
%>
<html>
<head>
<title>UntitledDocument</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metahttp-equiv="refresh"content="3;URL=title.asp">
</head>
<body>
<%=outputmsg%>
</body>
</html>
titleout.asp:

<%
   subtitleoutput(rs)
%>
   <trbgcolor="#ffffff">
       <tdvalign="top"height="18"><%=rs("主题公布工夫")%></td>
       <tdvalign="top"height="18"><ahref="detail.asp?titleID=<%=rs("titleID")%>"><%=rs("主题")%></a></td>
       <tdvalign="top"height="18"><%=rs("作者")%></td>
       <tdvalign="top"align="right"height="18"><%=rs("复兴篇数")%></td>
       <tdvalign="top"height="18"><%=rs("最初复兴工夫")%></td>
   </tr>
<%
   endsub
%>
detail.asp

<%@LANGUAGE="VBSCRIPT"CODEPAGE="CP_ACP"%>
<!--#includefile="detout.asp"-->
<%
   ifnotsession("passed")then
       response.Redirect("title.asp")
   endif
%>
<%
   dbpath=server.MapPath("news.mdb")
   setconn=server.CreateObject("adodb.connection")
   conn.open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&dbpath
   titleID=request("titleID")
   setrs=conn.execute("select*fromtitleswheretitleID="&clng(titleID))
   ifrs.eofthen
       response.Redirect("title.asp")
   else
       sql="select*fromdetailswheretitleID="&clng(titleID)&"orderbydetailIDdesc"
       setrsdetail=conn.execute("select*fromdetailswheretitleID="&clng(titleID)&"orderbydetailID")
   endif
%>
<html>
<head>
<title>UntitledDocument</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<%
   words=replace(""&rs("words"),chr(13),"<br>")
   Email="<ahref="""&rs("Email")&"mailto:"&rs("Email")&""">"&rs("Email")&"</a>"
%>
<center>
   <table>
       <tr>
          <td><%=rs("name")%></td>
          <td>Email:<%=Email%></td>
          <td>工夫:<%=rs("createdate")%></td>
       </tr>
       <tr>
          <tdcolspan="3">主题:<%=rs("subject")%></td>
       </tr>
       <tr>
          <tdcolspan="3"><%=words%></td>
       </tr>
   </table>
</center>
<%
   whilenotrsdetail.eof
       detailoutputrsdetail
       rsdetail.movenext
   wend
%>
<center>宣布复兴</center>
<formaction="detnew.asp"method="post">
   <inputtype="hidden"name="titleID"value="<%=Request("TitleID")%>">
   <center>
       <tableborder="0">
          <tr>
             <td>姓名:</td>
             <td><inputtype="text"size="30"name="name"value="<%=session("name")%>"></td>
          </tr>
          <tr>
             <td>信箱:</td>
             <td><inputtype="text"size="30"name="Email"value="<%=session("Email")%>"></td>
          </tr>
          <tr>
             <td>主题:</td>
             <td><inputtype="text"size="60"name="subject"></td>
          </tr>
          <tr>
             <td>内容:</td>
             <td><textareaname="words"rows="8"cols="60"></textarea></td>
          </tr>
          <tr>
             <tdalign="center"colspan="2"><inputtype="submit"value="提交">
             <inputtype="reset"value="清空"></td>
          </tr>
       </table>
   </center>
</form>
<center><ahref="title.asp">前往主题页</a></center>
</body>
</html>
detnew.asp

<%@LANGUAGE="VBSCRIPT"CODEPAGE="CP_ACP"%>
<!--#includevirtual="adovbs.inc"-->
<%
   dbpath=server.MapPath("news.mdb")
   setconn=server.CreateObject("adodb.connection")
   conn.open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&dbpath
   titleID=request("titleID")
   name=request("name")
   Email=request("Email")
   subject=request("subject")
   words=request("words")
   ifsubject=""orwords=""orname=""orEmail=""then
       outputmsg="字段不克不及为空,请填写完全信息!"
   else
       setrs=server.CreateObject("adodb.recordset")
       rs.open"details",conn,adopendynamic,adlockpessimistic
       rs.addnew
          rs("name")=name
          rs("Email")=Email
          rs("subject")=subject
          rs("words")=words
          rs("titleID")=titleID
       rs.update
       outputmsg="您的复兴已到场!"
       session("name")=name
       session("Email")=Email
     sql="updatetitlessetlastnewsdate=now(),shu=shu+1wheretitleID="&clng(titleID)    
       conn.execute(sql)
   endif
%>
<html>
<head>
<title>UntitledDocument</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metahttp-equiv="refresh"content="1;URL=detail.asp?titleID=<%=titleID%>">
</head>
<body>
<center><%=outputmsg%></center>
</body>
</html>
detout.asp

<%
   subdetailoutput(rs)
       words=replace(server.HTMLEncode(""&rs("words")),chr(13),"<br>")
       words=replace(words,"","")
       Email="<ahref="""&rs("Email")&"mailto:"&rs("Email")&""">"&rs("Email")&"</a>"
%>
<center>
   <table>
       <tr>
          <td><%=rs("name")%></td>
          <td>Email:<%=Email%></td>
          <td>工夫:<%=rs("newdate")%></td>
       </tr>
       <tr>
          <tdcolspan="3">主题:<%=rs("subject")%></td>
       </tr>
       <tr>
          <tdcolspan="3"><%=words%></td>
       </tr>
   </table>
</center>
<%
   endsub
%>
这个程序只是一个复杂的典范,另有很多功效没有到场,只是给人人作为参考。
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-18 21:58:34 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
活着的死人 该用户已被删除
板凳
发表于 2015-1-25 12:12:05 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
飘灵儿 该用户已被删除
地板
发表于 2015-2-2 22:04:01 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
蒙在股里 该用户已被删除
5#
发表于 2015-2-8 11:16:13 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
变相怪杰 该用户已被删除
6#
发表于 2015-2-25 10:55:11 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
莫相离 该用户已被删除
7#
发表于 2015-3-7 20:11:10 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
透明 该用户已被删除
8#
发表于 2015-3-15 13:41:40 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
乐观 该用户已被删除
9#
发表于 2015-3-22 01:30:32 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 04:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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