在前面我们介绍了文件版本的留言簿,现在我们不妨来设想一下:如果留言文件里面的留言很多,而你又急于想寻找其中的某条留言时,这时打开txt留言文件,对着一段段的留言记录,你敢担保你不会当场晕倒吗?而且文件留言簿最令人讨厌还远不只是这个原因,更气人的是:譬如你已经找到了你要找的留言,而且是非要将其删除不可(当然是因为那段留言竟毫不留情地往你脸上抹黑的缘由啦),那么此时其余想对你大发赞赏之言的朋友,就会因为你正在做留言删除的操作而不能留言了。看,这有多可惜!不过,你也无须叹气,虽然留言文件不能供多人共用,但是改成数据库来管理留言记录,当你在做删除留言的期间,访问者的留言还是可以加进来的。既然数据库留言簿能对你的系统如此照顾入微,我们现在就事不宜迟,立即来揭开她的庐山真面目。

  至于如何建立自已的数据库版本的留言簿,上海治疗阳痿医院程序还是通过分步骤的方法来说明吧。要编写一个数据库版本的留言簿,我们大致可以从以下三个步骤来完成。

  步骤一:使用Access先建立用来存放留言的数据表。(当然,如果你想使你的数据库能很好地工作在高需求、高质量的Web应用程序的客户-服务器数据库,而且无论是在性能还是在可靠性上都能经受得起严格的考验,那么你最好是用服务器等级的数据库,如:SQL server、Oracle等。对于非服务器等级的数据库,我推荐使用Access中文版来建立。凡是用Access来建立的数据表,都是以.mdb为后缀名,如:book0.mdb。)

  Access的界面非常友好,操作也非常简便,相信聪明的读者们,即使以往从未用过Access的,只要动手试试,也定能很快对其驽驾自如,所以我在这里也就不再赘述(当然也不排除有那么几分懒惰的成份)。

  步骤二:设计一个留言表单的网页也同样是不可或缺的。(如:guestbook0.htm)。

  步骤三:又到编写处理留言的ASP程序了。(我们可以将下述代码COPY下来,然后另存为manage0a.asp文件。)

  $#@60; !--#include file="adovbs.inc" --$#@62;

  调用adovbs.inc文件,所谓inc 文件顾名思义是include file的意思,adovbs.inc是IIS/PWS所提供的文件,存放着ADO相关常数的定义,使用inc文件可以使我们的程序,增加可读性,更易于开发和维护。

  $#@60; % Function SqlStr( data )

  SqlStr = "" & Replace( data ", "" ) & ""

  End Function

  这里用了SqlStr函数,其作用是将数据中的一个单引号改成两个单引号,并且在前后加上单引号。之所以要用该函数是由于上网者输入的数据必须以用单引号括起来的形式输入的数据与Insert Into命令组合在一起,但是如果用户输入的数据含有单引号,则输入的数据将会产生错误,因此输入的数据必须经过SqlStr的切换(将单引号切换成两个单引号)才是正确的。

  Name = Request("Name")

  Tel=Request("Tel")

  Email = Request("Email")

  Subject = Request("Subject")

  Memo = Request("Memo")

  从留言表单取得数据

  If Name = "" Or Tel="" Or Email = "" Or Subject = "" Or Memo = "" Then Response.Write "输入框不能为空白!"

  Response.End

  End If

  检查表单的各输入框是否有信息输入,若留有空输入框没填则显示说明信息:"输入框不能为空白!" 并停止执行下面的程序。

  Set conn = Server.CreateObject("ADODB.Connection")

  用Server.CreateObject取得对象ADODB.Connection。因为在ASP中,如果要访问数据必须首先创建与数据库的链接,因此建立连接是存取Web数据库不可缺少的步骤,执行以上语句之后,conn便是一个Connection对象。

  DBPath = Server.MapPath("book0.mdb")

  通过调用服务器对象的MapPath方法来获取book0.mdb的完整路径。

  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

  因为我们想打开的是Access(.mdb)数据库,所以我们要透过Access的ODBC驱动程序{Microsoft Access Driver (*.mdb)}来存取数据库,dbp参数则是用来指定想打开的数据库文件,因为它必须是完整路径名称,所以我们上一语句用了Server.MapPath 函数 。

  Name = Left( Name, 40 )

  Tel = Left(Tel,10)

  Email = Left( Email, 80 )

  Subject = Left( Subject, 127 )

  截短输入到各字段里数据的长度,以避免因输入到某一字段中的数据超长而引发的错误,当然假如我们将数据库book0.mdb中的各字段的数据类型都有设为“备注”,我们则再无需担心上网者所输入的数据有多长。

  sql = "Insert Into GuestBook (姓名, 电话, Email, 主题, 留言) Values( "

  sql = sql & SqlStr(Name) & ", "

  sql = sql & SqlStr(Tel) & ", "

  sql = sql & SqlStr(Email) & ", "

  sql = sql & SqlStr(Subject) & ", "

  sql = sql & SqlStr(Memo) & ")"

  在"guestbook"数据表中增加一个数据记录,然后把其中的各字段 (姓名, 电话, Email, 主题, 留言)分别设置成从留言表单上取下的对应的数据。

  conn.Execute sql

  执行sql指令。

  %$#@62;

转载于:https://www.cnblogs.com/chaorenman/p/4075372.html

ASP进阶教程Ⅷ:数据库版本的留言簿相关推荐

  1. python教程自带数据库_Python入门进阶教程-数据库操作

    Python数据库操作Python版本3.8.0,开发工具:Pycharm 建议本节在掌握了数据库相关操作后再进行学习 MySQL 是最流行的关系型数据库管理系统.本小节通过Python对MySQL数 ...

  2. ASP基础教程:数据库查询语言(2)

    在本篇的开头,我要感谢一些朋友来信给我指出了前几篇文章中的错误.不知大家是否记得在第八篇中我举了一个简单的利用 Application 制作的页面访问计数器?有位朋友来信问我,为何当他改变计数器起始变 ...

  3. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    [ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...

  4. Spring Boot 2.x基础教程:使用Flyway管理数据库版本

    之前已经介绍了很多在Spring Boot中使用MySQL的案例,包含了Spring Boot最原始的 JdbcTemplate(https://blog.didispace.com/spring-b ...

  5. flyway常用配置_Spring Boot 2.x基础教程:使用Flyway管理数据库版本

    之前已经介绍了很多在Spring Boot中使用MySQL的案例,包含了Spring Boot最原始的JdbcTemplate.Spring Data JPA以及我们国内最常用的MyBatis.同时, ...

  6. Spring Boot教程(四十)使用Flyway来管理数据库版本

    在上面的使用JdbcTemplate一文中,主要通过spring提供的JdbcTemplate实现对用户表的增删改查操作.在实现这个例子的时候,我们事先在MySQL中创建了用户表.创建表的过程我们在实 ...

  7. JSP WEB开发入门基础到高手进阶教程002

    JSP WEB开发入门基础到高手进阶教程 -------开发入门 JSP与微软的Active Server Pages 兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript. ...

  8. STM32 进阶教程 1 - micropython 移植

    前言 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.具有如下特点: 1.易于学习:Python有相 ...

  9. asp.net mysql 读写分离_[ASP.net教程]SqlSugar ORM已经支持读写分离

    [ASP.net教程]SqlSugar ORM已经支持读写分离 0 2016-11-26 23:00:12 目前只有MYSQL版 3.5.2.9 支持,其库版本12月3号更新该功能 用例讲解using ...

最新文章

  1. python技术是什么意思_python中“//”表示什么意思_后端开发
  2. 为对象添加方法mothod
  3. Android sim卡清空,Android手机卡了?用这几种方法变回来...
  4. 【Maven】Maven classifier的作用
  5. 了解一下Golang的市场行情
  6. linux内核不发(Router Solicit)RS报文问题
  7. JS实践与写博客-序
  8. Spring Web框架与Struts的区别
  9. 用几何画板求曲线弧长的方法
  10. flume大文件Bug
  11. 将Nginx添加到系统服务
  12. 计算机维护工作周报,运维周报怎么写呀,这一周没什么事做
  13. PHPWord通过docx模板替换标签,最终生成pdf文件
  14. app系统账号绑定微信openid,H5与后台交互
  15. 写给Python社群的第1课:初识Python,开篇知识点就选字符串吧~
  16. 最简单容易的四格漫画制作软件 Comic Strip Factory for Mac
  17. tp框架该网页无法正常运作的一个坑
  18. cairo填充_用 cairo 实现跨平台图形
  19. video视频标签怎么禁止用户拖动进度条快进
  20. 2022-2028全球快餐肉汤食品行业调研及趋势分析报告

热门文章

  1. php 简单的socket,【技术产品】PHP如何实现简单的Socket
  2. PHP系统发布指什么,cis系统是指什么
  3. vba mysql 没有为命令对象设置命令_怎样解决“没有为命令对象设置命令”的错误? - .Net论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  4. 接口规范 5. 点播流相关接口
  5. STM32系列单片机向量表和向量表重新定位
  6. 宅在家里写数据库中DML(增删改)
  7. centos7.5 su: 无法设置组: 不允许的操作(实测补充)(这是乱获取权限导致的,要注意权限问题)以及推荐文件操作
  8. 最新小白详细描述在centos7.5上安装python3并使用Nginx+virtualenv+supervisor来部署tornado项目(整理集合结合实际)系列2
  9. linux内存管理(六)-伙伴分配器
  10. python线程卡死问题解决