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>
显示结果如下:
示例代码下载:
posted on 2015-08-24 14:29 pchmonster 阅读(4188) 评论(0) 编辑 收藏 举报