目录
[一、ADO 简介](#一、ADO 简介)
[二、ADO 数据库连接](#二、ADO 数据库连接)
[1.创建一个 DSN-less 数据库连接](#1.创建一个 DSN-less 数据库连接)
[2.创建一个 ODBC 数据库连接](#2.创建一个 ODBC 数据库连接)
[3.到 MS Access 数据库的 ODBC 连接](#3.到 MS Access 数据库的 ODBC 连接)
[4.ADO 连接对象(ADO Connection Object)](#4.ADO 连接对象(ADO Connection Object))
[三、ADO Recordset(记录集)](#三、ADO Recordset(记录集))
[1.创建一个 ADO 表记录集(ADO Table Recordset)](#1.创建一个 ADO 表记录集(ADO Table Recordset))
[2.创建一个 ADO SQL 记录集 (ADO SQL Recordset)](#2.创建一个 ADO SQL 记录集 (ADO SQL Recordset))
[4.ADO 记录集对象(ADO Recordset Object)](#4.ADO 记录集对象(ADO Recordset Object))
[四、ADO 显示](#四、ADO 显示)
[2.在一个 HTML 表格中显示字段名称和字段的值](#2.在一个 HTML 表格中显示字段名称和字段的值)
[3.向 HTML 表格添加标题](#3.向 HTML 表格添加标题)
[4.向 HTML 表格添加颜色](#4.向 HTML 表格添加颜色)
[五、ADO 查询](#五、ADO 查询)
[2.仅显示 "Customers" 表的 "Companyname" 字段中大于 E 的记录](#2.仅显示 "Customers" 表的 "Companyname" 字段中大于 E 的记录)
[3.仅显示 "Customers" 表中的西班牙客户](#3.仅显示 "Customers" 表中的西班牙客户)
一、ADO 简介
①ADO自述:
1.ADO 是一项微软的技术
2.ADO 是一个微软的 Active-X 组件
3.ADO 是一个访问数据库中数据的编程接口
4.ADO 指 ActiveX 数据对象(ActiveX Data Objects)
5.ADO 被用于从网页访问数据库
6.ADO 会随微软的 IIS 被自动安装
②从一个 ASP 页面内部访问数据库的通常的方法是:
1.创建一个到数据库的 ADO 连接
2.打开数据库连接
3.创建 ADO 记录集
4.从记录集提取您需要的数据
5.关闭记录集
6.关闭连接
二、ADO 数据库连接
在从某个网页访问数据之前,必须先建立一个数据库连接。
1.创建一个 DSN-less 数据库连接
连接到某一个数据库的最简单的方法是使用一个 DSN-less 连接。DSN-less 连接可被用于您的站点上的任何微软 Access 数据库。
假设您拥有一个名为 "northwind.mdb" 的数据库位于 "c:/webdata/" 的 web 目录中,您可以使用下面的 ASP 代码连接到此数据库:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
%>
注意,在上面的例子中,您必须规定微软的 Access 数据库驱动程序(Provider),以及此数据库在计算机上的物理路径。
2.创建一个 ODBC 数据库连接
假设您拥有一个名为 "northwind" 的 ODBC 数据库,您可以使用下面的 ASP 代码连接到此数据库:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Open "northwind"
%>
通过一个 ODBC 连接,您可以连接到您的网络中任何计算机上的任何数据库,只要 ODBC 连接是可用的。
3.到 MS Access 数据库的 ODBC 连接
如何创建到一个 MS Access 数据库的连接:
1.打开控制面板中的 ODBC 图标
2.选择系统 ODBC 选项卡
3.点击 ODBC 选项卡中的添加按钮
4.选择 Driver to Microsoft Access,然后点击完成按钮
5.在下一个窗口中点击"选择"按钮来定位数据库
6.为此数据库赋予一个数据源名称(Data Source Name,DSN)
7.点击"确定"
注:此配置必须在您的网站所在的计算机上完成。假如您正在自己的计算机上运行PWS或者IIS,此架构是可以运行的,但是假如您的网站位于一台远程的服务器,您就必须拥有此服务器的物理访问权限,或者请您的 web 主机提供商为您做这些事情。
4.ADO 连接对象(ADO Connection Object)
ADO 连接对象用来创建到某个数据源的开放连接。通过此连接,您可以对此数据库进行访问和操作,查看此连接对象的所有方法和属性。
三、ADO Recordset(记录集)
如需读取数据库的数据,那么其中的数据必须首先被载入一个记录集中。
1.创建一个 ADO 表记录集(ADO Table Recordset)
假设有一个名为 "Northwind" 的数据库,通过下面的代码访问数据库中的 "Customers" 表:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Customers", conn
%>
2.创建一个 ADO SQL 记录集 (ADO SQL Recordset)
使用 SQL 访问 "Customers" 表中的数据:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Customers", conn
%>
3.从记录集中提取数据
假设用一个名为 "Northwind" 的数据库,通过下面的代码访问数据库中 "Customers" 表:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Customers", conn
for each x in rs.fields
response.write(x.name)
response.write(" = ")
response.write(x.value)
next
%>
4.ADO 记录集对象(ADO Recordset Object)
ADO Recordset 对象可被用来容纳来自数据库表的记录集。
查看 ADO Recordset 对象的所有方法和属性。
四、ADO 显示
显示来自记录集中的数据的最常用的方法,就是把数据显示在 HTML 表格中。
1.显示字段名称和字段值
一个名为 "Northwind" 的数据库,显示出 "Customers" 表中的数据(记得以 .asp 为扩展名来保存这个文件):
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT * FROM Customers", conn
do until rs.EOF
for each x in rs.Fields
Response.Write(x.name)
Response.Write(" = ")
Response.Write(x.value & "<br />")
next
Response.Write("<br />")
rs.MoveNext
loop
rs.close
conn.close
%>
</body>
</html>
2.在一个 HTML 表格中显示字段名称和字段的值
通过下面的代码把表 "Customers" 中的数据显示在一个 HTML 表格中:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
%>
<table border="1" width="100%">
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
3.向 HTML 表格添加标题
为这个 HTML 表格添加标题:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT Companyname, Contactname FROM Customers"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
4.向 HTML 表格添加颜色
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT Companyname, Contactname FROM Customers"
rs.Open sql, conn
%>
<table border="1" width="100%" bgcolor="#fff5ee">
<tr>
<%for each x in rs.Fields
response.write("<th align='left' bgcolor='#b0c4de'>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
五、ADO 查询
使用 SQL 来创建查询,指定仅查看选定的记录和字段。
1.显示选定的数据
仅显示 "Customers" 表的 "Companyname" 字段中以 A 开头的记录:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=Server.CreateObject("ADODB.recordset")
sql="SELECT Companyname, Contactname FROM Customers
WHERE CompanyName LIKE 'A%'"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close%>
</table>
</body>
</html>
2.仅显示 "Customers" 表的 "Companyname" 字段中大于 E 的记录
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT Companyname, Contactname FROM Customers WHERE CompanyName>'E'"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%> </td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
3.仅显示 "Customers" 表中的西班牙客户
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT Companyname, Contactname FROM Customers WHERE Country='China'"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%> </td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close
%>
</table>
</body>
</html>
4.让用户根据国别来选择客户
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/db/northwind.mdb"))
set rs=Server.CreateObject("ADODB.recordset")
sql="SELECT DISTINCT Country FROM Customers ORDER BY Country"
rs.Open sql,conn
country=request.form("country")
%>
<form method="post">
Choose Country <select name="country">
<% do until rs.EOF
response.write("<option")
if rs.fields("country")=country then
response.write(" selected")
end if
response.write(">")
response.write(rs.fields("Country"))
rs.MoveNext
loop
rs.Close
set rs=Nothing %>
</select>
<input type="submit" value="Show customers">
</form>
<%
if country<>"" then
sql="SELECT Companyname,Contactname,Country FROM Customers WHERE country='" & country & "'"
set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sql,conn
%>
<table width="100%" cellspacing="0" cellpadding="2" border="1">
<tr>
<th>Companyname</th>
<th>Contactname</th>
<th>Country</th>
</tr>
<%
do until rs.EOF
response.write("<tr>")
response.write("<td>" & rs.fields("companyname") & "</td>")
response.write("<td>" & rs.fields("contactname") & "</td>")
response.write("<td>" & rs.fields("country") & "</td>")
response.write("</tr>")
rs.MoveNext
loop
rs.close
conn.Close
set rs=Nothing
set conn=Nothing%>
</table>
<% end if %>
</body>
</html>