ASP入门(二十二)-连接数据库
ADO 简介
在 ASP 中访问数据库使用的 ADO 组件。
- ADO 是一项微软的技术。
- ADO 指 ActiveX 数据对象(ActiveX Data Objects)。
- ADO 是微软的 Active-X 组件。
- ADO 会随 IIS 被自动安装
- ADO 是一个访问数据库中数据的编程接口
从 ASP 页面访问数据的方法
- 创建一个到数据库的 ADO 连接
- 打开数据库连接
- 创建 ADO 记录集
- 从记录集提取您需要的数据
- 关闭记录集
- 关闭连接
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>
显示结果如下:

示例代码下载:
ASP入门(二十二)-连接数据库的更多相关文章
- ASP入门(十二)-Application对象
在一起协同工作以完成某项任务的一组ASP文件称为一个应用程序.Application 对象用于把这些文件捆绑在一起. Application 对象用于在整个应用程序生存期间保存信息. Applicat ...
- 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]
无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...
- Bootstrap入门(二十二)组件16:列表组
Bootstrap入门(二十二)组件16:列表组 列表组是灵活又强大的组件,不仅能用于显示一组简单的元素,还能用于复杂的定制的内容. 1.默认样式列表组 2.加入徽章 3.链接 4.禁用的列表组 5. ...
- Bootstrap入门(十二)组件6:导航标签页
Bootstrap入门(十二)组件6:导航标签页 1.标签页 2.胶囊式标签页 3.垂直展示 4.两端对齐的标签页 5.禁用的链接 6.添加下拉菜单 先引入本地的CSS文件和JS文件(注:1. ...
- MyBatis基础入门《十二》删除数据 - @Param参数
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...
- UWP入门(十二)--数据绑定用法
原文:UWP入门(十二)--数据绑定用法 主要几个元素: Template DataTemplate ItemSource 数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo ...
- RabbitMQ入门教程(十二):消息确认Ack
原文:RabbitMQ入门教程(十二):消息确认Ack 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csd ...
- Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十二】
<Web 前端开发精华文章推荐>2014年第一期(总第二十二期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML ...
- FreeSql (二十二)Dto 映射查询
适合喜欢使用 dto 的朋友,很多时候 entity 与 dto 属性名相同,属性数据又不完全一致. 有的人先查回所有字段数据,再使用 AutoMapper 映射. 我们的功能是先映射,再只查询映射好 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试
最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...
随机推荐
- ASp.net中Froms验证方式
微软的ASP.NET提供了3种用户验证方式,即Windows验证.窗体(Forms)验证和护照验证(Passport)验证. 由于验证方式各不相同,因而这3种验证方式在使用范围上也有很大的不同, Wi ...
- CVPR 2017
https://www.leiphone.com/news/201707/5D5qSICrej6xIdzJ.html Densely Connected Convolutional Networks ...
- TVB三个台
翡翠台http://token.tvb.com/stream/live/hls/mobilehd_jade.smil 高清翡翠,http://token.tvb.com/stream/live/hls ...
- Swift iOS 文件操作:沙盒(SandBox)、程序包(NSBundle)
1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件 ...
- IEnumerable是集合,IEnumerator是集合的迭代器
我们常用IEnumerable,却忽视IEnumerator.简单来说,IEnumerable是可以被循环遍历的集合,IEnumerator实施循环遍历. 接口分别是: public interfac ...
- 在ASP.NET MVC中使用jQuery的Load方法加载静态页面的一个注意点
使用使用jQuery的Load方法可以加载静态页面,本篇就在ASP.NET MVC下实现. Model先行: public class Article { public int Id { get; s ...
- CSS:如何学习 CSS?
马上该转战互联网领域了,在此总结一下 CSS 学习的思路. 理解 CSS 的基本语法. 理解盒子模型. 理解文档流和定位. 理解浮动和清除. 理解各种 CSS 样式. 目前发现的最好的资源是:http ...
- 第三方包jintellitype实现Java设置全局热键
Java原生API并不支持为应用程序设置全局热键.要实现全局热键,需要用JNI方式实现,这就涉及到编写C/C++代码,这对于大多数不熟悉C /C++的javaer来说,有点困难.不过幸好,国外有人已经 ...
- Swift - UITableView展开缩放动画
Swift - UITableView展开缩放动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // HeaderViewTapA ...
- [转]linux最新分区方案
FROM : http://www.cnblogs.com/chenlulouis/archive/2009/08/27/1554983.html 我的服务器是500G.最重要的是/var分区一定要大 ...