深入进行数据库编程.ppt_第1页
深入进行数据库编程.ppt_第2页
深入进行数据库编程.ppt_第3页
深入进行数据库编程.ppt_第4页
深入进行数据库编程.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

ASP程序设计,网络程序设计-ASP和网络程序设计基础配套课件,第9讲 深入进行数据库编程,讲解提纲,9.1 ADO的内部对象 9.2 Connection对象 9.3 Command对象 9.4 Recordset对象 9.5 存取SQL Server数据库 9.6 对多个表进行组合查询 9.7 开发实例-在线通讯录 9.8 本章小结,9.1 ADO的内部对象,Connection对象连接数据库 Command对象执行命令 Recordset对象记录集对象 Error、Parameter、Field分别是它们的子对象,9.2 Connection对象,Connection对象又称数据库连接对象,用来建立和数据库的连接。 几个学习重点: 建立数据库连接的各种方法。 Connection对象的Execute方法。 事务处理功能,9.2.1建立Connection对象,建立Connection对象的方法一般如下: Set Connection 对象实例=Server.CreateObject(“ADODB.Connection”) Connection对象实例.Open 数据库连接字符串 在上面的数据库连接字符串中,会用到若干参数,如 DSN ODBC数据源名称 Driver 数据库的驱动程序类型 Dbq 数据库的物理路径 Provider 数据提供者 ,连接数据库的具体方法,(1)创建没有ODBC数据源的连接 Dim db Set db=Server.CreateObject(“ADODB.Connection“) Db.Open “Dbq=C:InetpubwwwrootASPTempchapter9address.mdb;Driver= Microsoft Access Driver (*.mdb) “ 注意事项: Dbq是数据库文件的物理路径 Driver是数据库的类型,注意Driver和(*.mdb)之间有且仅有一个空格,连接数据库的具体方法,(1b)创建没有ODBC数据源的连接 Dim db Set db=Server.CreateObject(“ADODB.Connection“) Db.Open “Dbq=“ Driver=Microsoft Access Driver (*.mdb) “ 注意事项: 本例只是利用Server.MapPath方法将相对路径转换为了物理路径。 不过要注意相对路径的写法,这里因为数据库文件和ASP文件在同一个文件夹,所以直接写文件名称了。,连接数据库的具体方法,(2)创建有ODBC数据源的连接 Dim db Set db=Server.CreateObject(“ADODB.Connection“) Db.Open “Dsn=addr“ 注意事项: 参数Dsn表示数据源,addr是为数据库文件address.mdb建立的数据源名称。 这里也可以省略Dsn=,直接简写为Db.Open “addr“,连接数据库的具体方法,(3)创建基于OLE DB的连接 Dim db Set db=Server.CreateObject(“ADODB.Connection“) Db.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:InetpubwwwrootASPTempchapter9address.mdb“ 注意事项: 参数Provider表示数据库的驱动程序,这里为Access。 参数Data Source表示数据库的物理路径,当然这里也可以使用Server.MapPath方法将相对路径转换为物理路径。,9.2.2 Connection对象的属性,Connection对象的重要属性,ConnectionString用来指定数据库连接字符串;Provider用来指定数据库管理程序名称。和9.2.1中Open方法用到的实际一样。 Mode用来指定对数据库的权限,默认为可读可写。,9.2.3 Connection对象的方法,Connection对象的重要方法,Open方法用来打开数据库连接;Close方法用来关闭数据库连接。 Execute方法用来执行各种查询命令,其实可以完成查询、添加、删除和修改全部操作。 BeginTrans、CommitTrans和RollbackTrans用来进行事务处理,9.2.4 利用Connection对象存取数据库,本节内容已经在第8章全部讲过,本节只是一个复习。,9-1.asp,9.2.5 事务处理,为什么要进行事务处理? 银行转账示例 同生共死,同进共退,事务处理示例,9-2.asp,9.2.6 Error对象和Errors集合,Error对象又称为错误对象,是Connection对象的子对象。数据库程序运行时,一个错误就是一个Error对象,所有的Error对象就组成了Errors集合,又称错误集合。 Error对象和Errors集合的关系 汽车和车队的关系 士兵和军队的关系,Errors集合的属性和方法,属性 Count 返回集合中错误的个数。如: Connection对象.Errors.Count 方法 Item 用来返回一个错误对象,如: Set Error对象= Connection对象.Errors.Item(错误索引值) Clear 清除集合中的所有错误,如: Connection对象.Errors.Clear,Error对象属性,Number 错误编号,如3251、3246等 Description 错误描述 Source 错误原因 HelpContext 错误的帮助提示文字 HelpFile 错误的帮助提示文件 NativeError 服务器端产生的原始错误,Error对象示例,9-3.asp,9.3 Command对象,Command对象又称命令对象,是对数据库执行命令的对象,它可以执行对数据库查询、添加、删除、修改等记录操作。 Command对象是介于Connection对象和Recordset对象之间的一个对象,它主要通过传递SQL指令,对数据库提出操作请求,把得到的结果返给Recordset对象。 Command对象依赖Connection对象,因为Command对象必须经过一个已经建立的Connection对象才能发出SQL指令。 实际开发时常常省略了Command对象,但是其实也隐含建立了该对象。,建立Command对象的方法(1),一般是建立Connection对象,然后再建立Command对象。如: ,建立 Command对象(2),不建立Connection对象,直接建立Command对象。 这种建立方法其实也要隐含建立Connection对象,但是,因为没有明确建立Connection对象,就不能使用Connection对象的Execute等方法了。,9.3.2 Command对象的属性,Command对象的重要属性,CommandType 指定查询信息类型,1表示SQL语句;2表示数据表名;4表示查询名或存储过程名称。 CommandText 指定数据库查询命令,可以是SQL语句、数据表名或查询名称。 ActiveConnection 指定Connection对象实例名称。,9.3.3 Command对象的方法,Execute 执行数据库查询命令,非常类似于Connection对象的Execute方法。 CreateParameter 用来创建一个Parameter子对象,9.3.4 利用Command对象存取数据库,利用Command对象也可以查询、添加、更新、删除记录,请注意和利用Connection对象比较:,9-4.asp,9.3.5 非参数查询,首先在数据库中建立查询,如 Select * From users Where name=“李玫” 在ASP中建立Command对象的时候,指定查询命令类型为查询,并指定查询命令字符串为查询名称。如: cmd.CommandType=4 CommandText= “list“,非参数查询示例,9-5.asp,9.3.6 参数查询,在建立查询时,可以使用参数,如下面input_name就是一个参数: Select * From users Where name=input_name 执行时和非参数查询类似,但是要注意需要传入参数。,参数查询示例,9-6.asp,9.3.7 Parameter对象和Parameter集合,一个Parameter对象就是一个参数,若干个参数对象组成一个Parameters集合。 对象和集合的关系同Error对象和Errors集合。,Parameters集合的属性和方法,属性 Count 返回参数集合中的参数对象个数,如: cmd.Parameters.Count 方法 Append 添加一个参数对象 Delete 删除一个参数对象 Item 返回一个参数对象 Refresh 刷新Parameters集合中的参数对象。,建立Parameter对象,语法如下: Set Parameter对象实例=Command对象.CreateParameter(name,type,direction,size, value) 说明 Name 参数名称 Type 参数类型,200表示变长字符串 Direction 参数方向, 1表示传入,2表示传出 Size 参数大小,一般可以省略 Value 参数的值 具体示例参看前面讲的9-6.asp。,Parameter对象的属性和方法,属性 Name、Type、Direction、Size、Value和Attributes和CreateParameter方法的几个参数类似。 方法 AppendChunk 该方法用于添加数据到Parameter对象的末尾。,9.4 Recordset对象,Recordset对象又称记录集对象。当用Command对象或Connection对象执行查询命令后,就会得到一个记录集对象,该记录集包含满足条件的所有记录。 本节学习重点 建立Recordset对象的方法 利用Recordset对象实现添加、删除或更新记录操作; 数据分页显示的技术。,9.4.1 建立Recordset对象,建立Recordset对象的语法: Set Recordset对象实例=Server.CreateObject(“ADODB.Recordset”) Recordset对象.Open Source,ActiveConnection,CursorType,LockType,Options 说明 Soruce Command对象名或SQL语句或数据表名 ActiveConnection Connection对象名或数据库连接字符串 CursorType Recordset对象记录集中的指针类型, LockType Recordset对象的使用类型 Options Source类型,建立Recordset对象的具体方法(1),利用Connection对象的Execute方法建立 Dim db,rs Set db=Server.CreateObject(“ADODB.Connection“) db.Open “Dsn=addr“ Set rs=db.Execute(“Select * From users“) 说明: 这种方法是最常用的方法。 它没有明确建立Command对象,但是会建立一个隐含的Command对象。,建立Recordset对象的具体方法(2),利用Command对象的Execute方法建立 Dim db,cmd,rs Set db=Server.CreateObject(“ADODB.Connection“) db.Open “Dsn=addr“ Set cmd= Server.CreateObject(“ADODB.Command“) cmd.ActiveConnection=db cmd.CommandText=“Select * From users“ Set rs=cmd.Execute 说明: 该方法明确建立了Connection对象和Command对象 。,建立Recordset对象的具体方法(3),利用Connetion对象的Execute方法建立的另一种形式 Dim db,rs Set db=Server.CreateObject(“ADODB.Connection“) db.Open “Dsn=addr“ Set rs=Server.CreateObject(“ADODB.Recordset“) rs.Open “Select * From users“,db 说明: 这是将方法一修改为明确建立Recordset对象。,建立Recordset对象的具体方法(4),利用Command对象的Execute方法建立的另一种形式 Dim db,cmd,rs Set db=Server.CreateObject(“ADODB.Connection“) db.Open “Dsn=addr“ Set cmd= Server.CreateObject(“ADODB.Command“) cmd.ActiveConnection=db cmd.CommandText=“Select * From users“ Set rs=Server.CreateObject(“ADODB.Recordset“) rs.Open cmd 说明: 这种方法明确建立三个对象,功能最强大,也最科学。,建立Recordset对象的具体方法(5),直接建立Recordset对象 Dim rs Set rs=Server.CreateObject(“ADODB.Recordset“) rs.Open “Select * From users“, “Dsn=addr“ 说明: 这种方法由于没有明确建立Connection对象和Command对象,就无法使用他们的特殊功能。,建立Recordset对象的总结,一般只有在查询记录时才会需要建立Recordset对象。 而插入、删除和修改记录时则不需要返回记录集,所以一般就利用Connection对象或Command对象的Execute方法就可以了。,关于记录集,记录集,好比内存中的虚拟数据表,保存了满足查找条件的所有记录。,9.4.2 Recordset对象的属性,Recordset对象的重要属性,第1组、打开记录集时的一些设置 Source、ActiveConnection、Cursortype、LockType、CursorLocation、Filter。 这一组和建立Recordset对象时的参数类似。 第2组、打开记录集后的一些操作 RecordCount、Bof、Eof 第3组、关于数据分页的一些属性 PageSize、PageCount、AbsolutePage,9.7.3 Recordset对象的方法,9.7.3 Recordset对象的方法,第1组、主要是关于Recordset对象本身。 Open、Close、Requery 第2组、用来移动记录指针。 Movefirst、MovePrevious、MoveNext、MoveLast、Move 第3组、用来添加、删除或修改记录。 AddNew、Delete、Update、CancelUpdate、GetRows,9.4.4 利用Recordset对象查询记录,其实在第8章已经多次使用,只是以前并没有明确建立Recordset对象而已。,9-7.asp,9.4.5分页显示数据,分页显示示意图 分页显示数据的思想,首先显示第1页数据,并且在下方提供页码链接,当客户选择页码时,仍然传递到本文件,并显示新的一页,分页显示数据具体示例,首先来看建立Recordset对象的语句 说明: 必须明确建立Recordset对象,并使用键盘指针1或静态指针3,9-8.asp,分页显示数据具体示例,如何判断当前显示第几页 说明: 因为用Request.QueryString方法返回的数据类型是字符串,这里必须使用CInt函数将返回的字符串转换为数字。,9-8.asp,分页显示数据具体示例,分页显示数据 说明: 要特别注意如何判断一页的结尾,这里采用了两个条件,分别用来判断普通页和最后一页的结尾情况。,9-8.asp,分页显示数据具体示例,显示数据页码 说明: 当单击这些超链接时,就会再链接到本页,并将要显示的数据页码当作参数传回来。,9-8.asp,9.4.6 利用Recordset对象更新数据库,使用SQL语句更新数据库虽然简单,但是在写SQL语句时可能经常出错,而利用Recordset对象来更新数据库,则不需再写复杂的SQL语句。 当然,用这种方法必须明确建立Recordset对象,并且要注意Open方法的参数,要可以读写才行。,添加记录,示例 说明: AddNew表示添加一条新记录. 最后必须用Update方法,才可以彻底添加进去。,修改记录,示例 说明: 直接给要修改的字段赋值,然后使用Update方法即可更新。,删除记录,示例 说明: 删除记录很简单,首先执行Delete方法,然后执行Update即可。 但是删除记录只是对当前记录而言,可以使用移动记录指针的方法将指针移动到需要删除的记录,然后删除即可。,使用Recordset对象更新数据库小结,教材中9-10.asp是一个将各种方法综合到一起的示例,大家可以拆开练习。 另外9-9.asp是另外一种借用数组的方法,请自行研究。 一般情况下,本课程使用SQL语句来执行更新数据库的任务,但特殊情况下使用本方法可能更方便。,9.4.7 Fields集合和Field对象,一个记录集就好比一个电子表格,该表格内总是包含有许多列(字段),每一个字段就是一个Field对象,而所有Field对象组合起来就是一个Fields集合。,输出字段值的几种方法,Response.Write rs(“name“) Response.Write rs.Fields(“name“) Response.Write rs.Fields(“name“).Value Response.Write rs.Fields.Item(“name“).Value Response.Write rs(1) Response.Write rs.Fields(1) Response.Write rs.Fields(1).Value Response.Write rs.Fields.Item(1).Value,Fields 集合的属性和方法,属性 Count 返回记录集中字段个数 方法 Item 返回一个字段对象,语法如下: Set Field对象=Recordset对象.Fields.Item(字段名或字段索引值) 也可以简写为 Set Field对象=Recordset对象 (字段名或字段索引值),Field对象的属性,Field对象属性示例,9-11.asp,9.5 存取SQL Server数据库,存取SQL Server数据库(以下简称SQL数据库)其实和存取Access数据库是一样的,只是在连接数据库时略有区别,其他部分基本不用修改。,9.5.1 连接SQL Server数据库,(1)创建没有ODBC数据源的连接 Dim db Set db=Server.CreateObject(“ ADODB.Connection“)

温馨提示

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

评论

0/150

提交评论