第七章使用对象_第1页
第七章使用对象_第2页
第七章使用对象_第3页
第七章使用对象_第4页
第七章使用对象_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章使用对象第1页,课件共30页,创作于2023年2月目录第1章ASP使用基础第2章HTML语言第3章VBScript语言第4章使用ASP对象第5章使用ASP组件第7章使用ADO对象第7章设计实例第2页,课件共30页,创作于2023年2月第7章使用ADO对象

7.1使用Connection对象

7.2使用Recordset对象

7.3使用Command对象第3页,课件共30页,创作于2023年2月第7章使用ADO对象7.1使用Connection对象Connection对象代表了打开的、与数据源的连接,该对象代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象等价于到服务器的实际网络连接。使用该对象可以实现与MicrosoftSQLServer和MicrosoftAccess等数据库的连接,也可以通过SQL语句对所连接的数据库进行各种各样的操作。第7章目录第4页,课件共30页,创作于2023年2月第7章使用ADO对象7.1.1创建数据库连接1.创建Connection对象实例在使用ADOConnection对象之前,应使用Server.CreateObject方法创建该对象的实例,语法格式如下:

<% Dimcnn Setcnn=Server.CreateObject("ADODB.Connection") %>第7章目录第5页,课件共30页,创作于2023年2月第7章使用ADO对象7.1.1创建数据库连接2.指定连接字符串

ConnectionString属性Connection对象的ConnectionString属性可以包含用来建立数据库连接的信息。该属性的取值是一个字符串,通常称为连接字符串,包含一系列的“参数=值”语句,各个语句用分号分隔。例如,当在ASP中访问Access数据库时,可以在连接字符串中包含DRIVER和DBQ两个参数,分别指定所用的数据库驱动程序和要连接的Access数据库文件的路径。例如:

<%cnn.ConnectionString="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ=c:\test.mdb"%>第7章目录第6页,课件共30页,创作于2023年2月第7章使用ADO对象7.1.1创建数据库连接3.打开数据库连接

Open方法使用Connection对象的Open方法可以建立到数据库的物理连接,语法:

connection.OpenConnectionString,UserID,Password,OpenOptions所有参数都是可选的。其中ConnectionString指定连接字符串。UserID指定建立连接时所使用的用户名称。Password指定建立连接时所用密码。OpenOptions参数可以设置异步打开连接。

常使用:cnn.open第7章目录第7页,课件共30页,创作于2023年2月第7章使用ADO对象4.检查Connection对象的状态

State属性使用Connection对象的State属性可以检查该对象的当前状态,该属性返回值是下列常量之一:adStateClosed:表示该对象是关闭的。adStateOpen:表示该对象是打开的。以上前面带ad的符号常量包含在文件adovbs.inc中,路径为:\ProgramFiles\CommonFiles\System\ado\adovbs.inc,该文件包含与ADO一起使用的符号常量的定义清单。要使用这些符号常量,将adovbs.inc文件复制到站点主目录下,并使用#include指令将该文件包含到ASP页中。第7章目录第8页,课件共30页,创作于2023年2月第7章使用ADO对象5.关闭数据库连接

Close方法在对打开的Connection对象的操作结束后,使用Close方法释放所有关联的系统资源。语法格式如下: cnn.Close其中cnn参数指定Connection对象的名称。需要说明的是,关闭对象并非将它从内存中删除,此时可以更改它的属性设置并在以后再次使用Open方法打开它。要将对象完全从内存中删除,可以将对象变量设置为Nothing。

Set

cnn=nothing第7章目录第9页,课件共30页,创作于2023年2月第7章使用ADO对象7.1.2使用连接字符串连接sqlserver数据库将所有连接信息直接保存在连接字符串,应当在连接字符串中包含以下四个参数:DRIVER参数指定所用的ODBC驱动程序UID和PWD给出用户标识和密码DATABASE参数指定要连接的数据库,脚本如下:

<% Dimcnn Setcnn=Server.CreateObject("ADODB.Connection") cnn.ConnectionString=“DRIVER={SQLServer};server=192.178.14.100;UID=sa;PWD=sa;DATABASE=xiaofeng" cnn.Open %>

【例7.1sqlodbc-connect.asp】演示第7章目录第10页,课件共30页,创作于2023年2月第7章使用ADO对象7.1.3对Access数据库创建ODBC连接使用ODBC驱动程序对Access数据库创建连接时,可以使用三种方式来保存连接信息:创建系统数据源,将连接信息保存在Windows注册表中创建文件数据源,将连接信息保存在文本文件中将连接信息保存在字符串中,直接包含在ASP脚本中

创建系统数据源和文件数据源演示第7章目录第11页,课件共30页,创作于2023年2月第7章使用ADO对象3、使用连接字符串使用DRIVER参数指定所使用的ODBC驱动程序使用DBQ参数指定要连接的Access数据库:<%DimcnnSetcnn=Server.CreateObject("ADODB.Connection")cnn.ConnectionString="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&Server.MapPath(“xiaofeng.mdb")cnn.Open%>

【例7.1access-odbc-connect.asp】演示第7章目录第12页,课件共30页,创作于2023年2月第7章使用ADO对象7.1.4使用Connection对象执行SQL查询

Execute方法使用Connection对象的Execute方法还能够执行指定的查询、SQL语句、存储过程等内容。该方法有下列两种语法格式。对于不按行返回的命令字符串:

cnn.ExecuteCommandText,RecordsAffected,Options对于按行返回的命令字符串:

Setrecordset=cnn.Execute(CommandText,RecordsAffected,Options)CommandText参数包含要执行的SQL语句、表名、存储过程或特定提供程序的文本。该参数的内容可以是标准的SQL语法或要查询的表名。RecordsAffected是可选参数,长整型变量,提供程序向其返回操作所影响的记录数目。Options也是可选参数,指示提供程序应如何为CommandText参数赋值,可以取下列符号常量之一。adCmdText:指示提供程序应将CommandText赋值为命令的文本定义。adCmdTable:指示提供程序应将CommandText赋值为表名。第7章目录第13页,课件共30页,创作于2023年2月第7章使用ADO对象7.1.4使用Connection对象执行SQL查询

对于不按行返回的命令字符串(常用语法格式)(1)Sql=“insert….”cnn.Executesql,,adcmdtext

或者(2)cnn.Execute“insert…”,,adcmdtext

第一种方式比较常用第7章目录第14页,课件共30页,创作于2023年2月第7章使用ADO对象使用Connection对象执行SQL查询代码步骤:1、创建connection对象实例2、使用Connection对象的Connectionstring3、使用Connection对象的Open建立到指定数据库的连接4、将SQL语句作为CommandText参数的值,即写SQL语句5、使用Execute方法执行SQL语句第7章目录第15页,课件共30页,创作于2023年2月第7章使用ADO对象使用Connection对象执行SQL查询代码步骤:Setcnn=Server.CreateObject("ADODB.Connection")cnn.ConnectionString="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&Server.MapPath(“xiaofeng.mdb")cnn.OpenSQL="insertintoUsers(UserName,Password)values('"&UserName&"','"&Password&"')"cnn.Executesql,,adcmdtext

第7章目录第16页,课件共30页,创作于2023年2月第7章使用ADO对象1.创建新数据库手动完成

CREATEDATABASEdatabase_name

具体应用:手动方式创建一个数据库。对于access数据库,数据库文件为.mdb

2.创建新表手动完成 在SQL语言中,使用CREATETABLE语句创建一个新表。语法如下:

CREATETABLEtable_name (column_namedata_type,column_namedata_type,...)

例如:sql="CREATETABLEUsers(UserNamevarchar(10),Passwordvarchar(12))"

cnn.Executesql,,adcmdtext

【例7.3】演示第7章目录第17页,课件共30页,创作于2023年2月第7章使用ADO对象3.添加记录INSERT语句

insert[into]table_name (column_list)values(expression,...n)table_name指定将要接收数据的表。into是一个可选的关键字。column_list是要在其中插入数据的一列或多列的列表,必须用圆括号将column_list括起来,并且用逗号进行分隔。values给出引入要插入的数据值的列表,必须用圆括号将值列表括起来。expression是一个常量、变量或表达式。

例如:

SQL="insertintoUsers(UserName,Password)VALUES(‘hu',‘aa')"

SQL="insertintoUsers(UserName,Password)values('"&UserName&"','"&Password&"')"cnn.Executesql,,adcmdtext

【例insert】演示第7章目录第18页,课件共30页,创作于2023年2月第7章使用ADO对象4.更新记录update语句

updatetablenamesetcolumn_name=expression[,...n][where<search_condition>]tablename给出需要更新的表的名称。set子句指定要更新的列名称的列表。column_name指定含有要更改数据的列的名称。expression的值用于代替列中原有的值。where子句指定要更新表中的哪些记录。如果省略WHERE子句,则表中所有记录都将被更改为SET子句指定的数据。例如:

SQL="updateuserssetpassword='222'whereusername='111'"SQL="updateuserssetpassword='"&password&"'whereusername='"&username&"'"cnn.Executesql,,adcmdtext

【例7.7】演示【例update】演示第7章目录第19页,课件共30页,创作于2023年2月第7章使用ADO对象5.删除记录delete语句

deletefromtable_name[where<search_condition>]其中table_name指定要删除记录的表的名称。where子句指定用于限制删除行数的条件。如果没有提供where子句,则delete删除表中的所有记录。例如:

SQL=“deletefromuserswhereusername='111'"

SQL="deletefromuserswhereusername='"&username&"'"

cnn.Executesql,,adcmdtext

【例7.7】演示【例delete】演示第7章目录第20页,课件共30页,创作于2023年2月第7章使用ADO对象7.2使用Recordset对象Recordset对象表示的是来自基本表或命令执行结果的记录全集。使用Recordset对象主要用来存储select结果返回的记录,所有Recordset对象均使用记录(行)和字段(列)进行构造。如果sql语句是select按行返回的查询,执行产生的任何结果将存储在新的Recordset对象中。7.2.1创建和访问记录集1.用Connection对象的Execute方法返回记录集当调用Connection对象的Execute方法时,如果sql语句是select按行返回的查询,执行产生的任何结果将存储在新的Recordset对象中。第7章目录第21页,课件共30页,创作于2023年2月第7章使用ADO对象7.2.1创建和访问记录集1.用Connection对象的Execute方法返回记录集例子:

<%Dimcnn,rs,sqlSetcnn=Server.CreateObject("ADODB.Connection")cnn.ConnectionString="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&Server.Mappath("xiaofeng.mdb")cnn.OpenSetrs=Server.CreateObject("ADODB.Recordset")SQL=“select*fromuserwhereusername=‘xiaofeng'"Setrs=cnn.ExecuteSQL '现在可以通过Recordset对象对检索到的数据进行存取

cnn.Close%>第7章目录第22页,课件共30页,创作于2023年2月第7章使用ADO对象2.用Recordset对象的Open方法打开记录集使用Recordset对象的Open方法打开一个记录集。语法格式如下:

rs.OpenSource,ActiveConnection,CursorType,LockType其中参数Source为Command对象变量名、

SQL语句、表名。主要使用sql语句。ActiveConnection为有效的Connection对象变量名。CursorType指定打开Recordset时应使用的游标类型。(常省略)LockType指定打开Recordset时应使用的锁定类型。(常省略)第7章目录第23页,课件共30页,创作于2023年2月第7章使用ADO对象2.用Recordset对象的Open方法打开记录集例如:

<%Dimcnn,rs,sqlSetcnn=Server.CreateObject("ADODB.Connection")cnn.ConnectionString="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&Server.Mappath("xiaofeng.mdb")cnn.OpenSetrs=Server.CreateObject("ADODB.Recordset")SQL=“select*fromuserwhereusername=‘xiaofeng'"rs.OpenSQL,cnn ……rs.Close%>第7章目录第24页,课件共30页,创作于2023年2月第7章使用ADO对象检索记录SELECT语句在SQL语言中,使用SELECT语句从表中检索数据FROM子句指定从其中检索数据的表WHERE子句指定用于限制返回的行的搜索条件ORDERBY子句设置结果集的排序方式等SQL=“select*fromuserwhereusername=‘xiaofeng‘(orderbyiddesc)”SQL=“select*fromuserwhereusername=‘”&username&”‘(orderbyiddesc)”

第7章目录第25页,课件共30页,创作于2023年2月第7章使用ADO对象3.访问字段值rs(“字段名”)每个Recordset对象都包含一个Fields集合,该集合由一些Field对象组成。每个Field对象对应于记录集内的一列,也就是数据库表中的一个字段。使用Field对象的Value属性可以设置或返回当前记录中的字段值,使用Field对象的

Name属性可以返回字段名。返回输出数据表里的username字段的值:是变量

rs(“username")rs.Fields("username")rs.Fields("username").Value <%=rs("username")%>第7章目录第26页,课件共30页,创作于2023年2月第7章使用ADO对象4.关闭记录集Rs.close创建记录集并执行所需操作后,可以使用

Close方法关闭Recordset对象,同时释放相关联的数据和可能已经通过该特定Recordset对象对数据进行的独立访问。

Rs.close

【例7-8list-recor(2)111.asp】演示第7章目录第27页,课件共30页,创作于2023年2月第7章使用ADO对象7.2.2设置游标特性和锁定类型1.设置游标的类型使用CursorType属性可以指定打开Recordset对象时该使用的游标类型,该属性取值为下列值之一:adOpenForwardOnly:表示仅向前游标(默认值),只能在Recordset中向前滚动。adOpenKeyset:表示键集游标,允许Recordset中各种类型的移动。adOp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论