ADO教材.docx
- 文档编号:11241758
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:22
- 大小:19.40KB
ADO教材.docx
《ADO教材.docx》由会员分享,可在线阅读,更多相关《ADO教材.docx(22页珍藏版)》请在冰豆网上搜索。
ADO教材
什么是ADO?
∙ADO是一项微软的技术
∙ADO指ActiveX数据对象(ActiveXDataObjects)
∙ADO是一个微软的Active-X组件
∙ADO会随微软的IIS被自动安装
∙ADO是一个访问数据库中数据的编程接口
在从某个网页访问数据之前,必须先建立一个数据库连接。
创建一个DSN-less数据库连接
连接到某一个数据库的最简单的方法是使用一个DSN-less连接。
DSN-less连接可被用于您的站点上的任何微软Access数据库。
假设您拥有一个名为"northwind.mdb"的数据库位于"c:
/webdata/"的web目录中,您可以使用下面的ASP代码连接到此数据库:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
%>
注意,在上面的例子中,您必须规定微软的Access数据库驱动程序(Provider),以及此数据库在计算机上的物理路径。
创建一个ODBC数据库连接
假设您拥有一个名为"northwind"的ODBC数据库,您可以使用下面的ASP代码连接到此数据库:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Open"northwind"
%>
通过一个ODBC连接,您可以连接到您的网络中任何计算机上的任何数据库,只要ODBC连接是可用的。
到MSAccess数据库的ODBC连接
下面为您讲解如何创建到一个MSAccess数据库的连接:
1.打开控制面板中的ODBC图标
2.选择系统ODBC选项卡
3.点击ODBC选项卡中的添加按钮
4.选择DrivertoMicrosoftAccess,然后点击完成按钮
5.在下一个窗口中点击“选择”按钮来定位数据库
6.为此数据库赋予一个数据源名称(DataSourceName,DSN)
7.点击"确定"
注意:
此配置必须在您的网站所在的计算机上完成。
假如您正在自己的计算机上运行PWS或者IIS,此架构是可以运行的,但是假如您的网站位于一台远程的服务器,您就必须拥有此服务器的物理访问权限,或者请您的web主机提供商为您做这些事情。
ADO连接对象(ADOConnectionObject)
ADO连接对象用来创建到某个数据源的开放连接。
通过此连接,您可以对此数据库进行访问和操作。
查看此连接对象的所有方法和属性。
如需读取数据库的数据,那么其中的数据必须首先被载入一个记录集中。
创建一个ADO表记录集(ADOTableRecordset)
在ADO数据库连接创建之后,如上一章所述,接下来就可以建立一个ADO记录集了。
假设我们有一个名为"Northwind"的数据库,我们可以通过下面的代码访问数据库中的"Customers"表:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
rs.Open"Customers",conn
%>
创建一个ADOSQL记录集(ADOSQLRecordset)
我们也可使用SQL访问"Customers"表中的数据:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
rs.Open"Select*fromCustomers",conn
%>
从记录集中提取数据
在记录集被打开后,我们可以从记录集中提取数据。
假设我们用一个名为"Northwind"的数据库,我们可以通过下面的代码访问数据库中"Customers"表:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
rs.Open"Select*fromCustomers",conn
foreachxinrs.fields
response.write(x.name)
response.write("=")
response.write(x.value)
next
%>
ADO记录集对象(ADORecordsetObject)
ADORecordset对象可被用来容纳来自数据库表的记录集。
查看ADORecordset对象的所有方法和属性。
显示字段名称和字段值
我们有一个名为"Northwind"的数据库,并且我们希望显示出"Customers"表中的数据(记得以.asp为扩展名来保存这个文件):
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
rs.Open"SELECT*FROMCustomers",conn
dountilrs.EOF
foreachxinrs.Fields
Response.Write(x.name)
Response.Write("=")
Response.Write(x.value&"
")
next
Response.Write("
")
rs.MoveNext
loop
rs.close
conn.close
%>
在一个HTML表格中显示字段名称和字段的值
我们也可以通过下面的代码把表"Customers"中的数据显示在一个HTML表格中:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
rs.Open"SELECTCompanyname,ContactnameFROMCustomers",conn
%>
<%dountilrs.EOF%>
<%foreachxinrs.Fields%>
<%next
rs.MoveNext%>
<%loop
rs.close
conn.close
%>
向HTML表格添加标题
我们希望为这个HTML表格添加标题,这样它就更易读了:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
sql="SELECTCompanyname,ContactnameFROMCustomers"
rs.Opensql,conn
%>
<%foreachxinrs.Fields
response.write("
next%>
<%dountilrs.EOF%>
<%foreachxinrs.Fields%>
<%next
rs.MoveNext%>
<%loop
rs.close
conn.close
%>
显示选定的数据
我们希望仅仅显示"Customers"表的"Companyname"字段中以A开头的记录:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
sql="SELECTCompanyname,ContactnameFROMCustomers
WHERECompanyNameLIKE'A%'"
rs.Opensql,conn
%>
<%foreachxinrs.Fields
response.write("
next%>
<%dountilrs.EOF%>
<%foreachxinrs.Fields%>
<%next
rs.MoveNext%>
<%loop
rs.close
conn.close%>
对数据进行排序
我们希望显示"Customers"表中的"Companyname"和"Contactname"字段,并根据"Companyname"进行排序(请记得用.asp为后缀保存):
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.recordset")
sql="SELECTCompanyname,ContactnameFROM
CustomersORDERBYCompanyName"
rs.Opensql,conn
%>
<%foreachxinrs.Fields
response.write("
next%>
<%dountilrs.EOF%>
<%foreachxinrs.Fields%>
<%next
rs.MoveNext%>
<%loop
rs.close
conn.close%>
向数据库中的表添加记录
我们希望向Northwind数据库中的Customers表添加一条新的记录。
我们首先要创建一个表单,这个表单包含了我们需要从中搜集数据的输入域:
CustomerID: | |
CompanyName: | |
ContactName: | |
Address: | |
City: | |
PostalCode: | |
Country: |
当用户按下确认按钮时,这个表单就会被送往名为"demo_add.asp"的文件。
文件"demo_add.asp"中含有可向Customers表添加一条新记录的代码:
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
sql="INSERTINTOcustomers(customerID,companyname,"
sql=sql&"contactname,address,city,postalcode,country)"
sql=sql&"VALUES"
sql=sql&"('"&Request.Form("custid")&"',"
sql=sql&"'"&Request.Form("compname")&"',"
sql=sql&"'"&Request.Form("contname")&"',"
sql=sql&"'"&Request.Form("address")&"',"
sql=sql&"'"&Request.Form("city")&"',"
sql=sql&"'"&Request.Form("postcode")&"',"
sql=sql&"'"&Request.Form("country")&"')"
onerrorresumenext
conn.Executesql,recaffected
iferr<>0then
Response.Write("Noupdatepermissions!
")
else
Response.Write("
"&recaffected&"recordadded
")endif
conn.close
%>
重要事项
在您使用INSERTcommand命令时,请注意以下事项:
∙如果表含有一个主键,请确保向主键字段添加的值是唯一且非空的(否则,provider就不会追加此记录,亦或发生错误)
∙如果表含有一个自动编号的字段,请不要在INSERT命令中涉及此字段(这个字段的值是由provider负责的)
关于无数据字段
在MSAccess数据库中,假如您将AllowZeroLength属性设置为“Yes”,您可以在文本、超链接以及备忘字段输入零长度的字符串("")。
我们可使用SQL的UPDATE来更新数据库表中的某条记录。
更新数据库表中的记录
我们希望更新Northwind数据中Customers表的某条记录。
首先我们需要创建一个表格,来列出Customers中的所有记录。
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
setrs=Server.CreateObject("ADODB.Recordset")
rs.open"SELECT*FROMcustomers",conn
%>
ListDatabase
<%
foreachxinrs.Fields
response.write("
next
%>
<%dountilrs.EOF%>
<%
foreachxinrs.Fields
iflcase(x.name)="customerid"then%>
<%else%>
<%endif
next
%>
<%rs.MoveNext%>
<%
loop
conn.close
%>
如果用户点击"customerID"列中的按钮,会打开一个新文件"demo_update.asp"。
此文件包含了创建输入域的源代码,这些输入域基于数据库中记录的字段,同时也含有一个保存修改的“更新按钮”:
UpdateRecord
<%
setconn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open"c:
/webdata/northwind.mdb"
cid=Request.Form("customerID")
ifRequest.form("companyname")=""then
setrs=Server.CreateObject("ADODB.Recordset")
rs.open"SELECT*FROMcustomersWHEREcustomerID='"&cid&"'",conn
%>
<%=x.name%> |
<%
else
sql="UPDATEcustomersSET"
sql=sql&"companyname='"&Request.Form("companyname")&"',"
sql=sql&"contactname='"&Request.Form("contactname")&"',"
sql=sql&"address='"&Request.Form("address")&"',"
sql=sql&"city='"&Request.Form("city")&"',"
sql=sql&"postalcode='"&Request.Form("postalcode")&"',"
sql=sql&"country='"&Request.Form("country")&"'"
sql=sql&"WHEREcustomerID='"&cid&"'"
onerrorresumenext
conn.Executesql
iferr<>0then
response.write("Noupdatepermissions!
")
else
response.write("Record"&cid&"wasupdated!
")
endif
endif
conn.close
%>
我们可使用SQL的DELETE命令来删除数据库表中的某条记录。
删除表中的记录
我们希望删除Northwind数据库的Customers表中的一条记录。
首先我们需要创建一个表格,来列出Customers中的所有记录。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADO 教材