1、ADO教材什么是 ADO? ADO 是一项微软的技术 ADO 指 ActiveX 数据对象(ActiveX Data Objects) ADO 是一个微软的 Active-X 组件 ADO 会随微软的 IIS 被自动安装 ADO 是一个访问数据库中数据的编程接口 在从某个网页访问数据之前,必须先建立一个数据库连接。创建一个 DSN-less 数据库连接连接到某一个数据库的最简单的方法是使用一个 DSN-less 连接。DSN-less 连接可被用于您的站点上的任何微软 Access 数据库。假设您拥有一个名为 northwind.mdb 的数据库位于 c:/webdata/ 的 web 目录中
2、,您可以使用下面的 ASP 代码连接到此数据库:注意,在上面的例子中,您必须规定微软的 Access 数据库驱动程序(Provider),以及此数据库在计算机上的物理路径。创建一个 ODBC 数据库连接假设您拥有一个名为 northwind 的 ODBC 数据库,您可以使用下面的 ASP 代码连接到此数据库:通过一个 ODBC 连接,您可以连接到您的网络中任何计算机上的任何数据库,只要 ODBC 连接是可用的。到 MS Access 数据库的 ODBC 连接下面为您讲解如何创建到一个 MS Access 数据库的连接:1. 打开控制面板中的 ODBC 图标 2. 选择系统 ODBC 选项卡 3
3、. 点击 ODBC 选项卡中的添加按钮 4. 选择 Driver to Microsoft Access,然后点击完成按钮 5. 在下一个窗口中点击“选择”按钮来定位数据库 6. 为此数据库赋予一个数据源名称(Data Source Name,DSN) 7. 点击确定 注意:此配置必须在您的网站所在的计算机上完成。假如您正在自己的计算机上运行PWS或者IIS,此架构是可以运行的,但是假如您的网站位于一台远程的服务器,您就必须拥有此服务器的物理访问权限,或者请您的 web 主机提供商为您做这些事情。ADO 连接对象(ADO Connection Object)ADO 连接对象用来创建到某个数据源
4、的开放连接。通过此连接,您可以对此数据库进行访问和操作。查看此连接对象的所有方法和属性。如需读取数据库的数据,那么其中的数据必须首先被载入一个记录集中。创建一个 ADO 表记录集(ADO Table Recordset)在 ADO 数据库连接创建之后,如上一章所述,接下来就可以建立一个 ADO 记录集了。假设我们有一个名为 Northwind 的数据库,我们可以通过下面的代码访问数据库中的 Customers 表:创建一个 ADO SQL 记录集 (ADO SQL Recordset)我们也可使用 SQL 访问 Customers 表中的数据:从记录集中提取数据在记录集被打开后,我们可以从记录
5、集中提取数据。假设我们用一个名为 Northwind 的数据库,我们可以通过下面的代码访问数据库中 Customers 表:ADO 记录集对象(ADO Recordset Object)ADO Recordset 对象可被用来容纳来自数据库表的记录集。查看 ADO Recordset 对象的所有方法和属性。显示字段名称和字段值我们有一个名为 Northwind 的数据库,并且我们希望显示出 Customers 表中的数据(记得以 .asp 为扩展名来保存这个文件):%set conn=Server.CreateObject(ADODB.Connection)conn.Provider=Micr
6、osoft.Jet.OLEDB.4.0conn.Open c:/webdata/northwind.mdbset rs = Server.CreateObject(ADODB.recordset)rs.Open SELECT * FROM Customers, conndo until rs.EOF for each x in rs.Fields Response.Write(x.name) Response.Write( = ) Response.Write(x.value & ) next Response.Write() rs.MoveNextlooprs.closeconn.close
7、%在一个 HTML 表格中显示字段名称和字段的值我们也可以通过下面的代码把表 Customers 中的数据显示在一个 HTML 表格中: 向 HTML 表格添加标题我们希望为这个 HTML 表格添加标题,这样它就更易读了: %for each x in rs.Fields response.write( & x.name & ) next% 显示选定的数据我们希望仅仅显示 Customers 表的 Companyname 字段中以 A 开头的记录: %for each x in rs.Fields response.write( & x.name & ) next% 对数据进行排序我们希望显示
8、 Customers 表中的Companyname和Contactname字段,并根据Companyname进行排序(请记得用.asp为后缀保存): %for each x in rs.Fields response.write( & x.name & ) next% 向数据库中的表添加记录我们希望向 Northwind 数据库中的 Customers 表添加一条新的记录。我们首先要创建一个表单,这个表单包含了我们需要从中搜集数据的输入域:CustomerID:Company Name:Contact Name:Address:City:Postal Code:Country: 当用户按下确认
9、按钮时,这个表单就会被送往名为 demo_add.asp 的文件。文件 demo_add.asp 中含有可向 Customers 表添加一条新记录的代码:%set conn=Server.CreateObject(ADODB.Connection)conn.Provider=Microsoft.Jet.OLEDB.4.0conn.Open c:/webdata/northwind.mdbsql=INSERT INTO customers (customerID,companyname,sql=sql & contactname,address,city,postalcode,country)s
10、ql=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) & )on error resume nextconn
11、.Execute sql,recaffectedif err0 then Response.Write(No update permissions!)else Response.Write( & recaffected & record added)end ifconn.close%重要事项在您使用 INSERT command 命令时,请注意以下事项: 如果表含有一个主键,请确保向主键字段添加的值是唯一且非空的(否则,provider 就不会追加此记录,亦或发生错误) 如果表含有一个自动编号的字段,请不要在 INSERT 命令中涉及此字段(这个字段的值是由 provider 负责的) 关于无
12、数据字段在 MS Access 数据库中,假如您将 AllowZeroLength 属性设置为 “Yes”,您可以在文本、超链接以及备忘字段输入零长度的字符串 ()。我们可使用 SQL 的 UPDATE 来更新数据库表中的某条记录。更新数据库表中的记录我们希望更新 Northwind 数据中 Customers 表的某条记录。首先我们需要创建一个表格,来列出 Customers 中的所有记录。List Database%for each x in rs.Fields response.write( & ucase(x.name) & )next% input type=submit name=
13、customerID value= 如果用户点击 customerID 列中的按钮,会打开一个新文件 demo_update.asp。此文件包含了创建输入域的源代码,这些输入域基于数据库中记录的字段,同时也含有一个保存修改的“更新按钮”:Update Record input name= value= %else sql=UPDATE customers SET sql=sql & companyname= & Request.Form(companyname) & , sql=sql & contactname= & Request.Form(contactname) & , sql=sql
14、 & address= & Request.Form(address) & , sql=sql & city= & Request.Form(city) & , sql=sql & postalcode= & Request.Form(postalcode) & , sql=sql & country= & Request.Form(country) & sql=sql & WHERE customerID= & cid & on error resume next conn.Execute sql if err0 then response.write(No update permissions!) else response.write(Record & cid & was updated!) end if end ifconn.close%我们可使用 SQL 的 DELETE 命令来删除数据库表中的某条记录。删除表中的记录我们希望删除 Northwind 数据库的 Customers 表中的一条记录。首先我们需要创建一个表格,来列出 Customers 中的所有记录。bod
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1