1、ADO学习资料详细ADO 被用于从网页访问数据库。您应当具备的基础知识在继续学习之前,您需要对下面的知识有基本的了解: WWW、HTML 以及对网站构建的基本了解 ASP(动态服务器页面) SQL(结构化查询语言)如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。什么是 ADO? ADO 是一项微软的技术 ADO 指 ActiveX 数据对象(ActiveX Data Objects) ADO 是一个微软的 Active-X 组件 ADO 会随微软的 IIS 被自动安装 ADO 是一个访问数据库中数据的编程接口从 ASP 页面访问数据库从一个 ASP 页面内部访问数据库的通常的方法是
2、:1. 创建一个到数据库的 ADO 连接2. 打开数据库连接3. 创建 ADO 记录集4. 从记录集提取您需要的数据5. 关闭记录集6. 关闭连接在从某个网页访问数据之前,必须先建立一个数据库连接。创建一个 DSN-less 数据库连接连接到某一个数据库的最简单的方法是使用一个 DSN-less 连接。DSN-less 连接可被用于您的站点上的任何微软 Access 数据库。假设您拥有一个名为 northwind.mdb 的数据库位于 c:/webdata/ 的 web 目录中,您可以使用下面的 ASP 代码连接到此数据库:注意,在上面的例子中,您必须规定微软的 Access 数据库驱动程序(
3、Provider),以及此数据库在计算机上的物理路径。创建一个 ODBC 数据库连接假设您拥有一个名为 northwind 的 ODBC 数据库,您可以使用下面的 ASP 代码连接到此数据库:通过一个 ODBC 连接,您可以连接到您的网络中任何计算机上的任何数据库,只要 ODBC 连接是可用的。到 MS Access 数据库的 ODBC 连接下面为您讲解如何创建到一个 MS Access 数据库的连接:1. 打开控制面板中的 ODBC 图标2. 选择系统 ODBC 选项卡3. 点击 ODBC 选项卡中的添加按钮4. 选择 Driver to Microsoft Access,然后点击完成按钮5
4、. 在下一个窗口中点击“选择”按钮来定位数据库6. 为此数据库赋予一个数据源名称(Data Source Name,DSN)7. 点击确定注意:此配置必须在您的网站所在的计算机上完成。假如您正在自己的计算机上运行PWS或者IIS,此架构是可以运行的,但是假如您的网站位于一台远程的服务器,您就必须拥有此服务器的物理访问权限,或者请您的 web 主机提供商为您做这些事情。ADO 连接对象(ADO Connection Object)ADO 连接对象用来创建到某个数据源的开放连接。通过此连接,您可以对此数据库进行访问和操作。查看此连接对象的所有方法和属性。如需读取数据库的数据,那么其中的数据必须首先
5、被载入一个记录集中。创建一个 ADO 表记录集(ADO Table Recordset)在 ADO 数据库连接创建之后,如上一章所述,接下来就可以建立一个 ADO 记录集了。假设我们有一个名为 Northwind 的数据库,我们可以通过下面的代码访问数据库中的 Customers 表:创建一个 ADO SQL 记录集 (ADO SQL Recordset)我们也可使用 SQL 访问 Customers 表中的数据:从记录集中提取数据在记录集被打开后,我们可以从记录集中提取数据。假设我们用一个名为 Northwind 的数据库,我们可以通过下面的代码访问数据库中 Customers 表:ADO
6、记录集对象(ADO Recordset Object)ADO Recordset 对象可被用来容纳来自数据库表的记录集。查看 ADO Recordset 对象的所有方法和属性。显示来自记录集中的数据的最常用的方法,就是把数据显示在 HTML 表格中。实例显示记录如何首先创建一个数据库连接,然后创建一个记录集,然后把其中的数据显示在HTML中。在 HTML 表格中显示记录如何把数据表中的数据显示在HTML表格中。向 HTML 表格添加标题如何向HTML表格添加标题,以使其可读性更强。向 HTML 表格添加颜色如何向HTML表格添加颜色,以使其更加美观。显示字段名称和字段值我们有一个名为 Nort
7、hwind 的数据库,并且我们希望显示出 Customers 表中的数据(记得以 .asp 为扩展名来保存这个文件):%set conn=Server.CreateObject(ADODB.Connection)conn.Provider=Microsoft.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 R
8、esponse.Write(x.name) Response.Write( = ) Response.Write(x.value & ) next Response.Write() rs.MoveNextlooprs.closeconn.close%在一个 HTML 表格中显示字段名称和字段的值我们也可以通过下面的代码把表 Customers 中的数据显示在一个 HTML 表格中: 向 HTML 表格添加标题我们希望为这个 HTML 表格添加标题,这样它就更易读了: %for each x in rs.Fields response.write( & x.name & ) next% 我们可以
9、使用 SQL 来创建查询,这样就可以指定仅查看选定的记录和字段。实例显示 Companyname 以 A 开头的记录如何仅仅显示 Customers 表的 Companyname 字段中以 A 开头的记录。显示 Companyname 大于 E 的记录如何仅仅显示 Customers 表的 Companyname 字段中大于 E 的记录。仅显示西班牙的客户如何仅仅显示 Customers 表中的西班牙客户。让用户来选择筛选标准让用户根据国别来选择客户显示选定的数据我们希望仅仅显示 Customers 表的 Companyname 字段中以 A 开头的记录: %for each x in rs.
10、Fields response.write( & x.name & ) next% 我们可以使用SQL来规定如何对记录集中的数据进行排序。实例根据指定的字段名处对记录进行升序排序如何根据指定字段名对数据进行排序根据指定的字段名处对记录进行降序排序如何根据指定字段名对数据进行排序让用户来选择根据哪列进行排序让用户来选择根据哪列进行排序对数据进行排序我们希望显示 Customers 表中的Companyname和Contactname字段,并根据Companyname进行排序(请记得用.asp为后缀保存): %for each x in rs.Fields response.write( & x.
11、name & ) next% 我们可以使用 SQL 的 INSERT INTO 命令向数据库中的表添加记录。向数据库中的表添加记录我们希望向 Northwind 数据库中的 Customers 表添加一条新的记录。我们首先要创建一个表单,这个表单包含了我们需要从中搜集数据的输入域:CustomerID:Company Name:Contact Name:Address:City:Postal Code:Country: 当用户按下确认按钮时,这个表单就会被送往名为 demo_add.asp 的文件。文件 demo_add.asp 中含有可向 Customers 表添加一条新记录的代码:%set
12、 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)sql=sql & VALUES sql=sql & ( & Request.Form(custid) & ,sql=sql & & Request.Form(co
13、mpname) & ,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.Execute sql,recaffectedif err0 then Response.Write(No update permissions!)else R
14、esponse.Write( & recaffected & record added)end ifconn.close%重要事项在您使用 INSERT command 命令时,请注意以下事项: 如果表含有一个主键,请确保向主键字段添加的值是唯一且非空的(否则,provider 就不会追加此记录,亦或发生错误) 如果表含有一个自动编号的字段,请不要在 INSERT 命令中涉及此字段(这个字段的值是由 provider 负责的)关于无数据字段在 MS Access 数据库中,假如您将 AllowZeroLength 属性设置为 “Yes”,您可以在文本、超链接以及备忘字段输入零长度的字符串 ()
15、。注释:并非所有的数据库都支持零长度的字符串,因而当添加带有空白字段的记录时可能会产生错误。因此,检查您使用的数据库所支持的数据类型是很重要的。我们可使用 SQL 的 UPDATE 来更新数据库表中的某条记录。更新数据库表中的记录我们希望更新 Northwind 数据中 Customers 表的某条记录。首先我们需要创建一个表格,来列出 Customers 中的所有记录。List Database%for each x in rs.Fields response.write( & ucase(x.name) & )next% input type=submit name=customerID value= 如果用户点击 customerID 列中的按钮,会打开一个新文件 demo_update.asp。此文件包含了创建输入域的源代码,这些输入域基于数据库中记录的字段,同时也含有一个保存修改的“更新按钮”:Update Record %for each x in rs.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1