ADO教材.docx

上传人:b****8 文档编号:11241758 上传时间:2023-02-26 格式:DOCX 页数:22 大小:19.40KB
下载 相关 举报
ADO教材.docx_第1页
第1页 / 共22页
ADO教材.docx_第2页
第2页 / 共22页
ADO教材.docx_第3页
第3页 / 共22页
ADO教材.docx_第4页
第4页 / 共22页
ADO教材.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

ADO教材.docx

《ADO教材.docx》由会员分享,可在线阅读,更多相关《ADO教材.docx(22页珍藏版)》请在冰豆网上搜索。

ADO教材.docx

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%>

<%Response.Write(x.value)%>

<%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(""&x.name&"")

next%>

<%dountilrs.EOF%>

<%foreachxinrs.Fields%>

<%Response.Write(x.value)%>

<%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(""&x.name&"")

next%>

<%dountilrs.EOF%>

<%foreachxinrs.Fields%>

<%Response.Write(x.value)%>

<%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(""&x.name&"")

next%>

<%dountilrs.EOF%>

<%foreachxinrs.Fields%>

<%Response.Write(x.value)%>

<%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(""&ucase(x.name)&"")

next

%>

<%dountilrs.EOF%>

<%

foreachxinrs.Fields

iflcase(x.name)="customerid"then%>

">

<%else%>

<%Response.Write(x.value)%>

<%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

%>

<%foreachxinrs.Fields%>

<%next%>

<%=x.name%>"value="<%=x.value%>">



<%

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中的所有记录。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1