已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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= & Server.MapPath(address.mdb) & ;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对象的属性 属 性 说 明 Attributes 设置 Connection对象控制事务处理时的行为 CommandTimeout Execute方法的最长执行最长时间 ConnectionString 指定 Connection对象的数据库链接信息 ConnectionTimeout Open方法与数据库链接的执行最长时间 CursorLocation 控制光标的类型 DefaultDatabase 指定 Connection对象的缺省数据库名称 IsolationLevel 指定 Connection对象事务处理的时机 Mode 设置连接数据库的权限 Provider 设置 Connection对象内定的数据库管理程序名称 Version 显示 ADO对象的版本信息 Connection对象的重要属性 ConnectionString用来指定数据库连接字符串 ;Provider用来指定数据库管理程序名称。和 9.2.1中 Open方法用到的实际一样。 Mode用来指定对数据库的权限,默认为可读可写。 9.2.3 Connection对象的方法 方 法 说 明 Open 建立与数据库的连接 Close 关闭与数据库的连接 Execute 执行数据库查询 ( 可以执行各种操作 ) BeginTrans 开始事务处理 CommitTrans 提交事务处理结果 RollbackTrans 取消事务处理结果 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对象的属性 属 性 说 明 ActiveConnection 指定 Connection连接对象 CommandText 指定数据库查询信息 CommandType 指定数据查询信息的类型 CommandTimeout Command对象的 Execute方法的最长执行时间 Prepared 指定数据查询信息是否要先行编译 、 存储 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对象的属性 属 性 说 明 Source Command对象名或 SQL语句或数据表名 ActiveConnection Connection对象名或包含数据库连接信息的字符串 CursorType Recordset对象记录集中的指针类型 , 取值见表 9-20, 可省略 LockType Recordset对象的使用类型 , 取值见表 9-21, 可省略 MaxRecords 控制从服务器取得的记录集的最大记录数目 CursorLocation 控制数据处理的位置 , 客户端还是服务器端 Filter 控制欲显示的内容 RecordCount 记录集的总数 Bof 记录集的开头 Eof 记录集的结尾 PageSize 数据分页显示时每一页的记录数 PageCount 数据分页显示时数据页的总数 AbsolutePage 当前指针所在的数据页 AbsolutePosition 当前指针所在的记录行 Recordset对象的重要属性 第 1组、打开记录集时的一些设置 Source、 ActiveConnection、 Cursortype、 LockType、CursorLocation、 Filter。 这一组和建立 Recordset对象时的参数类似。 第 2组、打开记录集后的一些操作 RecordCount、 Bof、 Eof 第 3组、关于数据分页的一些属性 PageSize、 PageCount、 AbsolutePage 9.7.3 Recordset对象的方法 方 法 说 明 Open 打开记录集 Close 关闭当前的 Recordset对象 Requery 重新打开记录集 MoveFirst 移动到第一条记录 MoveProvious 移动到上一条记录 ( 向后移动 ) MoveNext 移动到下一条记录 ( 向前移动 ) MoveLast 移动到最后一条记录 Move 移动到指定记录 AddNew 添加新的记录 Delete 删除当前记录 Update 更新数据库数据 CancelUpdate 取消数据更新 GetRows 从记录集中取得多行数据 Resync 与数据库服务器同步更新 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对象的属性 属 性 说 明 Name 字段名称 Value 字段值 , 这是最常用的 Type 字段数据类型 DefinedSize 字段长度 Precision 字段存放数字最大位数 NumericScale 字段存放数字最大值 ActualSize 字段数据值长度 Attributes 字段数据值属性 Field对象属性示例 9-11.asp 9.5 存取 SQL Server数据库 存取 SQL Server数据库(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆明冶金高等专科学校《英语翻译理论与实践》2024-2025学年第一学期期末试卷
- 土的直接剪切试验记录(三)
- 高一数学上学期第一次月考(北师大版2019必修第一册第一章高效培优-提升卷)(考试版A4)
- 刺五加对改善睡眠功能研究
- 西藏地区马克思主义大众化现实问题
- 物资采购与供应链管理
- 学位论文参考文献及脚注部分格式示例-论文格式-
- 装备制造业工业汉语平行语料库的搭建与问题的探讨
- 农林经济管理本科毕业论文选题(1425个)
- 【工程建设项目成本管理研究国内外文献综述2400字】
- 北师大版高三英语一轮复习类型二第7讲续写话题团队合作课件
- 学校装修工程投标模板
- 安徽省合肥市2023-2024学年五年级上学期数学期中测试试卷(含答案)
- 课件:《中华民族共同体概论》第七讲 华夷一体与中华民族空前繁盛(隋唐五代时期)
- 海姆立克急救法课件模板
- 中药鉴定学(上)练习题库+参考答案
- 2024老年外科患者围手术期营养支持中国专家共识(完整版)
- 内部驾照笔试附有答案
- 培训与人力资源开发实训报告
- 江南丝绸课件
- 海南新能源汽车充电站项目商业计划书
评论
0/150
提交评论