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. 零宽断言 -- Lookahead/Lookahead Positive/Negative

    http://www.vaikan.com/regular-expression-to-match-string-not-containing-a-word/ 经常我们会遇到想找出不包含某个字符串的文 ...

  2. HDU 1428 漫步校园 (BFS+优先队列+记忆化搜索)

    题目地址:HDU 1428 先用BFS+优先队列求出全部点到机房的最短距离.然后用记忆化搜索去搜. 代码例如以下: #include <iostream> #include <str ...

  3. poj-3352-Road Construction-缩点

    做法: 把所有的边双联通分量缩成一个点. 之后建树,然后求出这个树中度为1的点. #include<stdio.h> #include<iostream> #include&l ...

  4. 一个简单例子理解C#的协变和逆变

    关于协变逆变,SolidMango的解释是比较可取的.有了协变,比如,在需要返回IEnumerable<object>类型的时候,可以使用IEnmerable<string>来 ...

  5. Control reaches end of non-void function 犯过最傻的错误

    之所以会报“Control reaches end of non-void function ”的警告,时因为方法名中缺少返回类型.正确的写法如下: +(void)setMobile:(NSStrin ...

  6. 程序员必须知道的HTML常用代码有哪些?

    HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言.在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要 ...

  7. 【Devops】【docker】【CI/CD】jenkins 清除工作空间报错Error: Wipe Out Workspace blocked by SCM

    jenkins 清除工作空间报错 错误如下: Error: Wipe Out Workspace blocked by SCM 解决方法: 进入jenkins服务器,进入workspace,手动rm ...

  8. 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表

    本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创 ...

  9. Swift - CALayer的contents属性动画

    Swift - CALayer的contents属性动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // LiveImageVi ...

  10. 递归搜寻NSString中重复的文本

    递归搜寻NSString中重复的文本 效果 源码 https://github.com/YouXianMing/iOS-Project-Examples 中的 StringRange 项目 // // ...