ADO 简介

在 ASP 中访问数据库使用的 ADO 组件。

  • ADO 是一项微软的技术。
  • ADO 指 ActiveX 数据对象(ActiveX Data Objects)。
  • ADO 是微软的 Active-X 组件。
  • ADO 会随 IIS 被自动安装
  • ADO 是一个访问数据库中数据的编程接口

从 ASP 页面访问数据的方法

  1. 创建一个到数据库的 ADO 连接
  2. 打开数据库连接
  3. 创建 ADO 记录集
  4. 从记录集提取您需要的数据
  5. 关闭记录集
  6. 关闭连接

ADO 数据库连接

在进行数据访问前,我们首先先要建立和数据库的连接,ADO 通过 OLE DB 可以与许多数据库建立连接,ADO 中的 Connection 对象用于建立和数据库的连接。

在连接之前,我们需要建立一个数据连接字符串,请详细学习上一篇第二十一讲:
ASP入门(二十一) - 如何自己获取 ADO 连接字符串

连接字符串中 Data Source 一定要用 Sever.MapPath 方法来转化为服务器上绝对路径。

加入了错误捕获代码(StartConnect.asp),连接数据库出现错误时,及时给用户友好的提示并终止页面的继续运行。代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
'如果遇到错误,则不理会继续执行
On Error Resume Next
Dim oConn, sConnString, sDBPath
'数据库路径及文件名
sDBPath = "1NorthWind.mdb"
'数据库连接字符串
sConnString = "Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" & Server.MapPath(sDBPath)
'建立 Connection 对象的实例 oConn
Set oConn = Server.CreateObject("ADODB.Connection")
'调用 oConn 的 Open 方法打开连接
oConn.Open sConnString
'检测是否出错
Dim ErrInfo
If Err Then
Err.Clear '清空错误
ErrInfo = "数据库连接出现错误,请联系管理员!<br>"
ErrInfo = ErrInfo & "终止页面继续运行"
End If
%>

我们已经建立了数据库连接,但是我们的网站中,会有很多文件都涉及到数据的操作,因此将数据库连接代码单独放置在一个文件(conn.asp)中,并将该文件放置到 根目录下的 include 目录中,数据库文件放置到 database 目录中,然后每个需要操作数据库的页面中,使用 #include file 代码来进行引入,如下代码:

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

执行 SQL 命令

Connect 对象提供了 Execute 方法来执行 SQL 语句,代码如下:

<!--#include file="../include/conn.asp" -->
<%
Dim sql, RA
sql = "DELETE FROM [运货商] WHERE [公司名称]='联邦货运'"
oConn.Execute sql, RA
'RA返回的受影响的记录数,如果成功删除则显示 > 0
oConn.Close
Set oConn = Nothing
%>

我们的 Execute 方法后面多了一个 RA 参数,这个参数可以返回受影响的记录数。通过这个记录数来判断是否正确执行完 DELETE 任务。

小案例——查询并得到记录集

这里我们将用到 Recordset 对象,该对象代表从查询返回的记录和那些记录的指针。‘

我们的例子将显示产品表中的名称、单位数量、单价信息,在 Access 中打开的数据表,所见到的结果如下:

在 ASP 页面中,我们通过输出 HTML 表格来显示这些信息,代码(ShowProducts.asp)如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>显示 Northwind 表中 产品 表信息</title>
</head>
<body>
<!--#include file="../include/conn.asp"-->
<%
Dim oRs, sql
sql = "SELECT * FROM [产品]"
Set oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open sql, oConn
%>
<h3>显示 Northwind 表中 产品 表信息</h3>
<table border="1">
<tr>
<th>编号</th>
<th>产品名称</th>
<th>单位数量</th>
<th>单价</th>
</tr>
<%
Dim num
num = 1
Do While NOT oRs.EOF '判断是否处于记录集的最末端
%>
<tr>
<td><%=num%></td>
<td><%=oRs("产品名称")%></td>
<td><%=oRs("单位数量")%></td>
<td><%=oRs("单价")%></td>
</tr>
<%
num = num + 1
oRs.MoveNext '下一条记录
Loop '结束循环 Do While '关闭连接、清空对象
oRs.Close
Set oRs = Nothing
oConn.Close
Set oConn = Nothing
%>
</table> </body>
</html>

显示结果如下:

示例代码下载:

ADOConn.RAR

ASP入门(二十二)-连接数据库的更多相关文章

  1. ASP入门(十二)-Application对象

    在一起协同工作以完成某项任务的一组ASP文件称为一个应用程序.Application 对象用于把这些文件捆绑在一起. Application 对象用于在整个应用程序生存期间保存信息. Applicat ...

  2. 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]

    无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...

  3. Bootstrap入门(二十二)组件16:列表组

    Bootstrap入门(二十二)组件16:列表组 列表组是灵活又强大的组件,不仅能用于显示一组简单的元素,还能用于复杂的定制的内容. 1.默认样式列表组 2.加入徽章 3.链接 4.禁用的列表组 5. ...

  4. Bootstrap入门(十二)组件6:导航标签页

    Bootstrap入门(十二)组件6:导航标签页   1.标签页 2.胶囊式标签页 3.垂直展示 4.两端对齐的标签页 5.禁用的链接 6.添加下拉菜单   先引入本地的CSS文件和JS文件(注:1. ...

  5. MyBatis基础入门《十二》删除数据 - @Param参数

    MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...

  6. UWP入门(十二)--数据绑定用法

    原文:UWP入门(十二)--数据绑定用法 主要几个元素: Template DataTemplate ItemSource 数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo ...

  7. RabbitMQ入门教程(十二):消息确认Ack

    原文:RabbitMQ入门教程(十二):消息确认Ack 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csd ...

  8. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十二】

    <Web 前端开发精华文章推荐>2014年第一期(总第二十二期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML ...

  9. FreeSql (二十二)Dto 映射查询

    适合喜欢使用 dto 的朋友,很多时候 entity 与 dto 属性名相同,属性数据又不完全一致. 有的人先查回所有字段数据,再使用 AutoMapper 映射. 我们的功能是先映射,再只查询映射好 ...

  10. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

随机推荐

  1. External Input Counter and External interrupt

    External Input Counter and External interrupt : count the input signal from the button. So what is t ...

  2. SWD 接口电路

  3. 利用webBrowser获取页面iframe中的内容

    1.获取frame的document HtmlDocument htmlDoc = webBrowser1.Document;  htmlDoc = webBrowser1.Document.Wind ...

  4. [翻译] 10 个实用的 Git 高级命令

    1. 输出最后一次提交的改变 这个命令,我经常使用它 来发送其他没有使用 git 的人来检查或者集成所修改的.它会输出最近提交的修改内容到一个 zip 文件中. git archive -o ../u ...

  5. Delphi XE 6,Rad Studio XE 6 官方下载(附破解)

      官方光盘镜像下载: http://altd.embarcadero.com/download/radstudio/xe6/delphicbuilder_xe6_win.iso RAD Studio ...

  6. C#编程(十八)----------C#中的结构

    C#中的结构 假设有一个类: class Dimensions { public double Length; public double Width; } 定义了一个类,它只存储某一项的长度和宽度. ...

  7. 查询死锁的Session SQL 语句

    /* Formatted on 2018/3/14 23:34:49 (QP5 v5.256.13226.35538) */ SELECT dob.object_name table_name , l ...

  8. 【java】ThreadLocal线程变量的实现原理和使用场景

    一.ThreadLocal线程变量的实现原理 1.ThreadLocal核心方法有这个几个 get().set(value).remove() 2.实现原理 ThreadLocal在每个线程都会创建一 ...

  9. Netty4.0学习笔记系列之四:混合使用coder和handler

    Handler如何使用在前面的例子中已经有了示范,那么同样是扩展自ChannelHandler的Encoder和Decoder,与Handler混合后又是如何使用的?本文将通过一个实际的小例子来展示它 ...

  10. Tomcat 报 The valid characters are defined in RFC 7230 and RFC 3986

    问题 24-Mar-2017 23:43:21.300 INFO [http-apr-8001-exec-77] org.apache.coyote.http11.AbstractHttp11Proc ...