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,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...
随机推荐
- Calculate CAN bit timing parameters
Calculate CAN bit timing parameters TSYNC_SEG === 1 TSEG1 = Prop_Seg + Phase_Seg1 TSEG2 = Phase_Seg2 ...
- linux下授予某用户对某文件夹的读写权限
- 蜗牛—ORACLE基础之学习(二)
如何创建一个表,这个表和还有一个表的结构一样但没有数据是个空表,旧表的数据也插入的 create table newtable as select * from oldtable 清空一个表内的数据 ...
- WSAEventSelect模型编程 详解
转自:http://blog.csdn.net/wangjieest/article/details/7042108 WSAEventSelect模型编程 WSAEventSelect模型编程这个模型 ...
- lodash用法系列(4),使用Map/Reduce转换
Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.clou ...
- 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等
作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要 ...
- 【转】比较init-method,afterPropertiesSet和BeanPostProcessor
一.简单介绍 1.init-method方法,初始化bean的时候执行,可以针对某个具体的bean进行配置.init-method需要在applicationContext.xml配置文档中bean的 ...
- spring websocket自动断开连接再创建引发的问题解决方案
问题:由于 web session 超时时间为 30 分钟,如用户在 web session 规定时间内没有退出系统,但由于其它原因 用户却断开的 websocket 的连接,如果用户还要聊天或是其它 ...
- 灵书妙探第一季/全集Castle迅雷下载
第一季 Castle Season 1 (2009)看点:ABC电视台2009年开播的一部罪案剧,讲述一位罪案小说家Richard Castle帮助纽约警察局凶杀组破案的故事.凶案组女警探Kate B ...
- 磁共振中的T1, T2 和 T2*的原理和区别
从物理的角度,要理解这几个概念的区别,需要对原子核的磁化有所了解,本文通过一些图示对这几个概念进行简明的介绍. 首先,磁共振最基本的原理就是氢原子核在磁场中自旋运动时所具有的量子力学特性.在一个均匀磁 ...