ASP系列教程:第11课---ASP与数据库_第1页
ASP系列教程:第11课---ASP与数据库_第2页
ASP系列教程:第11课---ASP与数据库_第3页
ASP系列教程:第11课---ASP与数据库_第4页
ASP系列教程:第11课---ASP与数据库_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、ASP系列教程:第11课-ASP与数据库ASP系列教程:第11课-ASP与数据库11.1 课前导读 1. 网站数据库化 2. 使用ADO访问数据库 3. ADO的特点 4. 示例数据库 11.1 课前导读 作为一种既易于使用又可扩展的技术,ADO可以用于向网页添加数据库访问。使用ADO编写的应用程序可以存取在Internet上任何地方的资源,例如,你可以在家里通过浏览器填写购物单,去购买远在千里之外的物品。1. 网站数据库化 将网站数据库化,就是使用数据库来管理整个网站。只要更新数据库的内容,网站的内容就会被自动更新。将网站数据库化的好处如下: 可以自动更新网页。采用数据库管理,只要更新数据库

2、的数据,网页内容就会自动得到更新,过期的网页也可以被自动拿掉。 加强搜寻功能。将网站的内容储存在数据库中,可以利用数据库提供的强大搜寻功能,从多个方面搜寻网站的数据。 可以实现各种基于Web数据库的应用。使用者只要使用浏览器,就可以通过Internet或Intranet内部网络,存取Web数据库的数据。可以使用在学校教学、医院、商业、银行、股市、运输旅游等各种应用上。例如银行余额查询、在线购书、在线查询、在线预定机票、在线医院预约挂号、在线 费查询、在线股市买卖交易、在线学校注册选课,以及在线择友等。2. 使用ADO访问数据库 目前,Microsoft对应用程序访问各种各样的数据源所使用的方法

3、是OLE DB,OLE DB是一套组件对象模型(COM)接口,但它是相当复杂的。连接应用程序与OLE DB的桥梁就是ADO。 可以使用ADO编写简洁和可扩展的脚本,连接到与OLE DB兼容的数据源,如数据库、电子表格、顺序数据文件或电子邮件目录。使用ADO的对象模型,可以轻松地(使用VBScript或JScript等脚本语言)访问这些接口,并将数据库功能添加到您的Web应用程序中。另外,还可以使用ADO访问与开放式数据库互连(ODBC)兼容的数据库。 ADO可以使用VBScript、JavaScript脚本语言来控制数据库的存取以及输出查询结果。3. ADO的特点 ADO可以用来建造客户/服务

4、器结构及Web的应用,它具有以下的特点: 支持批处理(Batch Updating),可以分批处理客户端提出的请求。 支持存储过程(Stored Procedures),可使用in/out参数给存储过程输入及输出值,并可以取得存储过程的返回值。 可以使用存储过程或批处理SQL指令,传回多组记录集的功能。4. 示例数据库 虽然可以使用多种数据库系统来从事ASP网页数据库的设计,但是由于Microsoft Access属于Microsoft Office家族,取得较为容易,且界面与Office家族一致,使用容易,因此本教程采用Microsoft Access进行网页数据库的设计。 本课的示例数据库

5、文件中包含的“职工工资”表的结构见表11-1。 表11-1 “职工工资”表的结构11.2 课堂教学 11.2.1 ADO的概念 11.2.2 访问数据库11.2.1 ADO的概念 1. ADO对象模型 2. Connection对象 3. Command对象 4. Recordset对象1. ADO对象模型 ADO对象模型包括7个对象和3个集合,如图11-1所示。其中对象及集合的说明见表11-1。表11-1 ADO对象描述表11-2 ADO集合描述 说明:在ADO对象模型中最为重要的对象是三个一般对象:Connection对象、Command对象和Recordset对象,通过这三个对象,可以方

6、便地建立数据库连接,执行SQL查询及存取查询的的结果。ConnectionRecordsetCommandErrorsFieldsFieldPrametersPrametersError图11-1 ADO对象模型2. Connection对象 ASP使用ADO对各种数据源进行各种操作,其中,Connection对象是必不可少的,Connection对象可以用来在应用程序和数据库中建立一条数据传输连线,在这个基础之上可以使用Command对象及Recordse对象来对Connection对象所连接的数据库进行插入删除、更新和查询等操作。同拨打 一样,建立一个Connection对象就像是拿起话筒

7、,打开一个Connection对象类似于拨号,而使用Command对象及Recordse对象已经是在用这条线路通话了。 Connection对象的常用属性见表11-3。表11-3 Connection对象的常用属性 Connection对象的常用方法见表11-4。表11-4 Connection对象的方法及描述 下面对部分方法进行详细说明。 Open方法:建立一个与数据源的连接对象,打开与数据源的连接。其语法格式为: connectionstring, UserId, Password 其中:Connectstring为可选参数,它是一个字符串变量,包含链接的信息。用法参见Conections

8、tring属性。 UserId为可选参数,它是一个字符串变量,包含建立连接时访问数据库使用的用户名称。 Password为可选参数,它是一个字符串变量,包含建立连接时访问数据库使用的密码。 Close方法:关闭与数据源的连接,并且释放与连接有关的系统资源。其语法格式为: 其中:Connobject为已经创建的Connection对象。 使用Close方法关闭Connection对象,但没有从内存中删除该对象。因此一个关闭的connection对象还可以用open方法打开而不必再次创建一个connection对象。此外,在使用close方法关闭连接时,也将关闭以此连接相关的所有活动的recoor

9、dset对象。但是,与此连接相关的command对象将不受影响,只不过command对象不再参与这个连接。 为了释放connection对象所占用的所有资源,可以用下面的方法:Set Connobject = nothingSet Connobject = nothing Execute方法:执行SQL命令或存储过程,以实现与数据库的通讯。其语法为: 有返回记录的格式:Set Rs = Connobject.Execute(CommandText,Set Rs = Connobject.Execute(CommandText, ReccordAffected, Options) Reccord

10、Affected, Options) 无返回记录的格式: CommandText, CommandText, ReccordAffected, Options ReccordAffected, Options 其中:Rs为创建的Recordsed对象;Connobject为已经创建的Connection对象。 CommandType是一个字符串,它包含一个表名,或某个将被执行的SQL语句;ReccordAffected为可选参数,返回此次操作所影响的记录数。Options为可选参数,用来指定参数的CommandText参数的性质,即用来指定ADO如何解释CommandText参数的参数值,其取

11、值与意义见表11-5。表11-5 Options参数的取值及意义3. Command对象 Command对象用来定义数据库的查询动作,这个查询一般采用SQL语句,大部分数据库都会支持SQL语言解释。通过和SQL Server的查询及存储过程的良好结合,Command对象有更强大的数据库访问能力,无论是对数据库的插入、更新和删除这类无需返回结果集的操作,还是对Select查询这样需返回结果集的操作都一样简单。 Command对象的常用属性见表11-6。表11-6 Command对象的属性 说明:CommandType属性指示CammandText属性中设定的“命令字符串”的类型,即用来指ADO如

12、何解释CammandText参数的参数值,它的取值与意义与表11-5中Options参数的取值及意义相同。 Command对象的常用方法有Execute方法,用来运行CommandText属性所设定的SQL查询、SQL说明命令或存储过程,以实现与数据库的通讯。其语法为: 有返回记录的格式:Set Rs = Comm. Execute(RecordsAffected,Set Rs = Comm. Execute(RecordsAffected, Parameters, Options) Parameters, Options) 无返回记录的格式: RecordsAfiected. Records

13、Afiected. Parameters, Options Parameters, Options 其中:Rs为创建的Recordsed对象;Comm为已经创建的Command对象。 RecordAfiected为可选参数,返回此次操作所影响的记录数。Parameters为可选参数,表示一个SQL语句的参数集合。Options为可选参数,用来指定ADO如何解释CommandText参数的参数值,它的取值与意义与表11-5中Options参数的取值及意义相同。4. Recordset对象 Recordset对象对应着Command对象的查询返回结果,或者是直接建立的一个带查询的结果集。它把从数据

14、库内查询到的结果封装在一起,并提供简单快捷的方式去访问每一条记录内每一字段的数据,在后面的章节我们会详细去了解这些方式。 Recordset对象实际上是依附于Connection对象和Command对象之上的。通过建立及开启一个Connection对象,可以与我们关心的数据库建立连线;通过使用Command对象,则可以告诉数据库我们想要做什么:是插入一条记录,还是查找符合条件的记录;通过使用Recordset对象,则可以方便自如地操作Command对象返回的结果。这三个对象中的每个都是必要的,缺一不可。 (1) Recordset对象的属性 Recordset对象的常用属性见表11-7。表11

15、-7 Recordset对象的常用属性 说明: CursorType属性指定RecordSet对象所使用的光标类型。不同的光标类型决定了对RecordSet所能做的操作。共有四种光标类型:0 - 前滚光标(ForwardOnlyCursor),光标只能向前移动,执行效率高,是Cursor的默认值;1 - 键盘光标(KeysetCursor),光标可向前向后移动,RecordSet记录集同步反映自它创建后其他用户所作的修改和删除,但却不能同步反映自它创建后其他用户新增加的记录;2 - 动态光标(DynamicCursor),光标可向前向后移动,任何时候RecordSet记录集都同步反映其他用户的

16、任何操作;3 - 静态光标(StaticCursor),光标可向前向后移动,自创建后无法同步反映其他用户所做的任何操作,它的功能简单但消耗资源少。 LockType属性表示编辑时记录的锁定类型。它决定了当不止一个用户试图同时改变一个记录时,RecordSet如何处理数据记录。它的取值有:0 - 只读锁定,记录只读,不能更新RecordSet,为LockType的默认值;1 - 悲观锁定,编辑记录开始立刻锁定,直到提交给数据提供者;2 - 乐观锁定,一次锁定一条记录,只有调用Update方法提交数据时才锁定记录;3 - 乐观的批量更新,允许同时更新多条记录。 Filter属性用来设定一个过滤条件

17、,以便对RecordSet记录进行过滤。使用的优点是可以在已经存在的RecordSet对象上进一步过滤出所需的记录。但这种方式增加了系统的开销。它有两种使用方式: 方式1:使用关系表达式,例如: = bh 30 其中Rs是已经创建的RecordSet对象;bh是RecordSet对象的字段(数值型)。 方式2:使用准则常量:0 - 清除以前的Filter,允许看见所有记录;1 - 只允许查看已修改但未提交的记录;2 - 允许查看最后删除、Resync、批量更新、或删除批量方式所影响的记录;3 - 允许查看数据库最后读取结果的数据。例如: = 1 可以实现更新整个批量记录之前只显示用户修改的记录

18、,使用户在提交数据之前能够进行检查。 BookMark属性用来存储当前记录的位置。并非每一个数据提供者都支持这个属性。当创建一个允许使用BookMark属性的RecordSet对象时,给每个记录都标上一个独一无二的BookMark,利用BookMark可以返回访问过的记录。 Status属性对于多用户连接管理特别有用,通过该属性可以看出更新记录的失败原因。它的返回值和意义如表11-8所示。表11-8 Status属性的值和意义 (2) RecordSet对象的方法 RecordSet对象的方法及意义见表11-9。表11-9 RecordSet对象的方法及意义 说明: Open方法:打开一个Re

19、cordSet对象。其语法格式为:Rs.OpenSource, ActiveConnectionRs.OpenSource, ActiveConnection, CursorType, LockType, Option, CursorType, LockType, Option 其中:Rs为已经创建的RecordSet对象;Source为可选参数,可以是一个Command对象名、SQL字符串存储过程或数据库的表名;ActiveConnection参见ActiveConnection属性;CursorType是RecordSet对象所使用的光标类型,用法参见CursorType属性;LockTy

20、pec是编辑RecordSet对象记录时所使用的锁定类型,用法参见LockType属性;Options指示数据提供者如何处理Source的内容类型,它的取值与意义见表11-5。 使用Close方法关闭RecordSet对象,并不从内存中删除该对象,只是无法读取其中的数据,但仍然可以读取它的属性。因此一个关闭的ReccordSet对象还可以用Open方法打开并保持其原有属性。如果正在进行编辑更新数据的操作,在调用Close方法前必须先调用Update或CancelUpdate方法,否 则 将 会 出 现 错 误 。 如 果 以 批 量 模 式 更 新 数 据 记 录(Reccordset的Loc

21、kType属性设为3),那么对缓冲区数据的修改将全部丢失。另外,使用Clone方法复制一个已经打开的RecordSet对象,调用Close方法不影响任何复制的RecordSet对象。 用下面的命令可以释放RecordSet对象所占用的所有资源:set Rs = nothing Move方法用于把记录指针指向指定的记录。其语法格式为:Move n , start 其中n为要移动的记录数,取正时表示向前(下)移动,取负时表示向后(上)移动;start是可选参数,表示移动的起点。 使用Move、MoveFirst、MoveLast、MovePrevious、MoveNext方法移动记录指针时,需要注

22、意RecordSet对象的光标类型。如“前滚光标”限制了记录指针只能向前移动。 GetRows方法从一个RecordSet对象读取一行或多行记录到一个数组中,一般用来读取大量的数据。其语法格式为:Myarray = Rs.GetRows(rows, start, fields)Myarray = Rs.GetRows(rows, start, fields) 其中Myarray为目标数组名;Rs为已经创建的RecordSet对象;Rows为返回数组的行数;start为读取数据的起点(书签);Fields为RecordSet的字段。 AddNew方法用于增加一条空纪录。调用该方法时在Record

23、Set对象中增加一个新行,并将指针移到行首以准备保存新数据。该方法一般和Update方法相搭配共同完成数据更新的任务。不过这种方法很消耗资源、效率最低,最好用SQL语句来实现数据更新。 Delete方法用于删除当前记录。当RecordSet工作在批量方式时,可实现批量删除。不过该方法非常消耗系统资源,效率非常低。其语法格式为:Delete valueDelete value 其中value = 1(默认值)表示该方法只删除当前记录;value = 2表示该方法删除所有由Filter属性设定的记录。11.2.2 访问数据库 1. 连接到数据源 2. 使用Recordset对象处理结果1. 连接到

24、数据源 (1) 创建连接字符串 创建Web数据应用程序的第一步是为ADO提供一种定位并标识数据源的方法。这一步通过“连接字符串”实现。连接字符串是一系列用分号分隔的参数,用于定义诸如数据源提供程序和数据源位置等参数。ADO使用连接字符串标识OLE DB提供程序并将提供程序指向数据源。提供程序是一个组件,用来描述数据源并以行集合的形式将信息展示给应用程序。 表11-10列出了几种通用数据源的OLE DB连接字符串。表11-10 常用的通用数据源的OLE DB连接字符串 为了向后兼容性,ODBC的OLE DB提供程序支持ODBC连接字符串语法。表11-11列出了常用的ODBC连接字符串。表11-1

25、1 常用的ODBC连接字符串 (2) 连接到数据源 ADO提供的Connection对象,用于建立和管理应用程序与OLE DB兼容数据源或ODBC兼容数据库之间的连接。Connection对象的属性和方法可以用来打开和关闭数据库连接,并发布对更新信息的查询。 要建立数据库连接,首先必须创建Connection对象实例。下述代码创建Connection对象实例,接着打开一个连接: 创建connection对象Set conn = ) 使用OLE DB连接字符串打开连接 Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:或 创建connection对象

26、 set conn=) 创建OLE DB连接字符串 CS=Provider=Microsoft.jet.OLEDB.4.0;Data Source= =CS & ) 打开连接 说明: 连接字符串在等号(=)的左右不包含空格。 在上例中,Connection对象的Open方法将引用连接字符串。2. 使用Recordset对象处理结果 建立了连接对象Connection,并打开了数据库连接后,就可以使用Recordset对象存取表中的记录。 要使用Recordset对象处理结果,首先必须创建Recordset对象实例。下述代码创建Recordset对象实例,并打开Recordset对象: 创建Recordset对象Set RS=) 打开Recordset对象 职工工资,conn,2,3,2 打开Recordset对象后,就可以读取、插入、删除和更新其中的记录。下面通过一个综合使用Recordset对象属性和方法的例子来说明记录集Recordset对象的应用。 【例11-1】综合使用Recordset对象的属性与方法,建立一个工资管理网页应用程序,如图11-1所示。 工资管理网页应用程序包括6

温馨提示

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

评论

0/150

提交评论