




已阅读5页,还剩76页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章深入进行数据库编程 本章内容简介 9 1ADO的内部对象 Connection对象 又称连接对象 主要用来建立与数据库的连接 Command对象 又称命令对象 是对数据库执行命令的对象 它可以执行对数据库查询 添加 删除 修改等记录操作 Recordset对象 又称记录集对象 用来得到从数据库返回的记录集 Error Parameter ield分别是它们的子对象 9 2Connection对象 9 2 1建立Connection对象9 2 2Connection对象的属性和方法9 2 3排序显示数据9 2 4查找数据9 2 5链接到详细页面9 2 6事务处理9 2 7Error对象和Errors集合 9 2 1建立Connection对象 建立Connection对象的方法一般如下 SetConnection对象实例 Server CreateObject ADODB Connection Connection对象实例 Open数据库连接字符串在上面的数据库连接字符串中 会用到若干参数 如DSN ODBC数据源名称User 数据库登录用户名Password 数据库登录密码Driver 数据库的驱动程序类型Dbq 数据库的物理路径Provider 数据提供者DataSource 数据库的物理路径 连接数据库的具体方法 常用的数据库连接字符串的形式 1 基于ODBC数据源的连接方式 Dsn address2 2 基于ODBC数据源的连接方式的省略方式 address2 3 基于ODBC但是没有数据源的连接方式 Driver MicrosoftAccessDriver mdb Dbq C Inetpub wwwroot asptemp chapter9 address mdb 4 基于ODBC但是没有数据源的连接方式 使用Server MapPath转换路径 Driver MicrosoftAccessDriver mdb Dbq DataSource Server Mappath address mdb 9 2 2Connection对象的常用属性 1 ConnectionTimeOut CommandTimeOut属性用于设置Connection对象的Open方法和Execute方法的最长执行时间 2 ConnectionString Provider Mode属性这几个属性通常用来设置数据库连接信息或连接权限等 其中ConnectionString属性用于指定数据库连接字符串 如 Provider属性用于指定OLEDB提供者 如 conn Provider Microsoft Jet OLEDB 4 0 Mode属性用来设置连接数据库的权限 利用该属性就可以在打开数据库时限制数据库的连接方式 比如只读或只写 Connection对象的方法 Open Close方法Open方法用来建立与数据库的连接 Close方法用来关闭一个已打开的Connection对象及其相关的各种对象 Execute方法方法用来执行数据库查询 在第8章中 大家已经看到了利用该方法可以完成查询 添加 更新和删除记录的功能 BeginTrans CommitTrans RollbackTrans方法其中BeginTrans方法用于开始一个事务处理 CommitTrans方法用于提交事务处理结果 只有执行该方法后 才将结束事务处理通道并且真正更新数据库的内容 RollbackTrans用于取消事务处理结果 执行该方法后 将结束事务处理通道并且取消当前事务处理中的任何更新动作 9 2 3排序显示数据 一般 我们会用OrderBy来实现对查询到的记录按某个字段排序的功能 但是许多网站有这样的效果 单击表格中某一列的标题就可以按相应的字段排序了 那么这一功能又是怎么实现的 下面举例来说明 本示例的中心思想是给列标题添加超链接 单击该超链接就重新打开本页面 不过会将排序字段名称附加在查询字符串中传递过来 然后在Select语句中就可以按该字段排序了 按各字段排序的示例 9 2 4查找数据 许多网站都有查找数据的页面 可以按照一个或多个字段查找符合条件的数据 下面就来制作一个按照姓名字段查找人员的例子 本示例的中心思想是利用表单输入姓名 然后在Select语句中利用Where条件进行模糊查找 查找数据示例 9 2 5链接到详细页面 如果一个数据表中含有很多字段 都显示在页面中就会有很多列 看起来不太方便和美观 通常做法是只显示若干重要字段 然后单击一个 详细 超链接 就可以打开一个详细页面 在详细页面中可以显示所有字段内容 下面举例来说明 在主页面中只显示了部分字段 并增加了 详细 超链接 点详细后可查看到所有字段 链接到详细页面示例 9 2 6事务处理 为什么要进行事务处理 银行转账示例而BeginTrans CommitTrans和RollbackTrans方法就是来解决这个问题的 当利用BeginTrans开始一个事务处理后 此后的所有更新都是暂时的 只有利用CommitTrans提交事务处理结果后 才真正更新数据库中的信息 如果中间发生错误 没有提交事务处理结果 则所有的更新都无效 事务处理示例 9 2 7Error对象和Errors集合 Error对象和Errors集合Error对象 它又称为错误对象 是Connection对象的子对象 数据库程序运行时 一个错误就是一个Error对象 所有的Error对象就组成了Errors集合 又称错误集合 对象和集合的关系 汽车示例Errors集合的属性和方法 Error对象的常用属性 Error对象和Errors集合示例 9 3Command对象 9 3 1建立Command对象9 3 2Command对象的属性和方法9 3 3利用Command对象存取数据库9 3 4非参数查询9 3 5参数查询9 3 6Parameter对象和Parameters集合 9 3 1建立Command对象 Command对象又称命令对象 它是介于Connection对象和Recordset对象之间的一个对象 它主要通过传递SQL指令 对数据库提出查询 添加 删除 更新记录等操作请求 然后把得到的结果返回给Recordset对象 Command对象依赖Connection对象 因为Command对象必须经过一个已经建立的Connection对象才能发出SQL指令 只是实际开发时常常省略了Command对象 建立Command对象的方法 建立Command对象的方法 1 首先建立Connection对象实例 然后再建立Command对象实例 如下 建立Command对象的方法 2 不建立Connection对象 直接建立Command对象 如下 这种建立方法其实也要隐含建立Connection对象 但是 因为没有明确建立Connection对象 就不能使用Connection对象的Execute等方法了 9 3 2Command对象的属性 Command对象的常用属性 Command对象的几个常用属性 1 CommandText属性 该属性用于指定Command对象要对数据库进行操作的指令 一般是SQL语句 不过也可以是数据表名 查询名或存储过程名 例如 2 CommandType属性 用于告诉Command对象数据查询指令的类型 究竟是SQL语句 表名还是查询名或存储过程名 例如 Command对象的方法 Command对象的几个常用方法 1 Execute方法该方法用来执行数据库查询 包括查询记录 添加 删除 更新记录等各种操作 它的语法也有两种 SetRecordset对象实例 Command对象实例 Execute或Command对象实例 Execute在使用Execute方法之前 需要用CommandText指定数据库查询指令 告诉数据库要做什么操作 下面请看例子 2 CreateParameter方法 该方法用来创造一个新的Parameter对象 参数对象 主要是在进行参数查询时使用 后面将专门讲述 9 3 3利用Command对象存取数据库 利用Command对象存取数据库时 首先建立一个Connection对象 然后建立一个Command对象 之后的操作和Connection对象非常类似 下面来看一个综合示例 9 3 4非参数查询 查询一般分为含参数的参数查询和不含参数的非参数查询两种 之所以要使用查询 主要是希望将查询指令放在数据库中执行而不是在ASP中执行 这样的优点是可以加快速度 对于大型网站就比较有意义 下面举例来介绍非参数查询的用法 首先建立一个查询qryList 语句如下 Select FromtbAddressOrderByIDDesc 非参数查询示例 9 3 5参数查询 下面先来建立一个参数查询qryList2 语句如下 Select FromtbAddressWherestrName varName所谓参数查询 指的就是SQL语句中含有一个参数 比如上面的varName是一个变量 它就是要传入的参数 执行时 根据传入的varName的值返回相关记录 参数查询示例 9 3 6Parameter对象和Parameters集合 一个参数就是一个Parameter对象 若干个Parameter对象组成一个Parameters集合 Parameters集合常用的属性和方法 建立Parameter对象 建立Parameter对象需要使用Command对象的CreateParameter方法 语法如下 SetParameter对象实例 Command对象实例 CreateParameter name type direction size value Parameter对象的属性和方法 9 4Recordset对象 9 4 1建立Recordset对象9 4 2Recordset对象的属性和方法9 4 3利用Recordset对象存取数据库9 4 4添加不完整的记录9 4 5分页显示数据9 4 6Field对象和Fields集合 Recordset对象 Recordset对象又称记录集对象 当用Command对象或Connection对象执行查询指令后 就会返回一个记录集对象 该记录集包含满足条件的所有记录 然后就可以利用ASP语句将记录集的数据显示在页面上 本节就来讲解Recordset对象更多的功能建立Recordset对象的方法利用Recordset对象实现添加 删除或更新记录操作 数据分页显示的技术 9 4 1建立Recordset对象 建立Recordset对象 语法如下 SetRecordset对象实例 Server CreateObject ADODB Recordset Recordset对象实例 Open Source ActiveConnection CursorType LockType Options 建立Recordset对象的方法1 利用Connection对象的Execute方法建立说明 这种方法是最常用的方法 它没有明确建立Command对象 但是会建立一个隐含的Command对象 建立Recordset对象的方法2 利用Comand对象的Execute方法建立说明 该方法明确建立了Connection对象和Command对象 建立Recordset对象的方法3 利用Connection对象但明确建立Recordset对象的方式说明 这是将方法一修改为明确建立Recordset对象 建立Recordset对象的方法4 利用Command对象但明确建立Recordset对象的方式说明 这种方法明确建立三个对象 功能最强大 也最科学 建立Recordset对象的方法5 直接建立Recordset对象说明 这种方法由于没有明确建立Connection对象和Command对象 就无法使用他们的特殊功能 建立Recordset对象的总结 一般只有在查询记录时才会需要建立Recordset对象 而插入 删除和修改记录时则不需要返回记录集 所以一般就利用Connection对象或Command对象的Execute方法就可以了 关于记录集记录集 好比内存中的虚拟数据表 保存了满足查找条件的所有记录 记录集结构图 9 4 2Recordset对象的属性和方法 Recordset对象的常用属性如下图 Recordset对象的重要属性 1 1 Source ActiveConnection CursorType LockType属性这一组属性主要用于限定记录集的特性 和上一节建立Recordset对象时的参数基本上是一致的 不过它们需要在打开记录集前设置 比如下面就用这几个属性改写上一节建立Recordset对象的方法 3 Recordset对象的重要属性 2 MaxRecords Filter属性这两个属性都是用来过滤记录集的 其中MaxRecords属性用于设置从数据库取得的记录集的最大记录数目 例如下面的语句将限制最多返回100条记录 Filter属性可以利用条件表达式设置希望显示的记录 例如下面语句将只返回intAge字段大于18并且小于25的记录 18AndintAge Recordset对象的重要属性 3 4 3 RecordCount属性该属性用于返回记录集中的记录总数 例如下面语句将输出记录总数 4 Bof Eof属性这两个属性用于判断当前记录指针是否指向记录集的开头或结尾 返回值为True或False 当指针指向开头时 Bof属性的值为True 当指针指向结尾时 Eof属性的值为False Recordset对象的重要属性 5 PageSize PageCount AbsolutePage AbsolutePosition属性这一组属性用来完成分页显示数据的功能 其中PageSize属性用于设置每一页的记录数 例如下面语句将设置每页显示10条记录 PageCount属性 用于返回数据页的总数 如下面语句将输出数据页总数 AbsolutePage属性 用于设置当前指针指向哪一页 如下面语句将指向第2页 AbsolutePosition属性 用于设置当前指针指向的记录行的绝对值 如下面语句将指向第10条记录 利用这几个属性时一般也要求设置指针类型为1 键盘指针 Recordset对象的重要属性 6 6 BookMark属性该属性用于设置或返回书签位置 例如下面语句就可以将当前记录位置保存到一个变量中 当希望重新指向该记录时 只要将该变量赋值给BookMark属性即可 记录指针就会自动指向书签所在记录 如 Recordset对象的常用方法 Recordset对象的重要方法 1 Open Close Requery方法这一组方法主要是关于Recordset对象本身的 其中Open方法在上一节已经详细讲解过 用于打开一个记录集 Close方法用于关闭记录集 例如 Requery方法用于重新打开记录集 相当于先关闭再打开 例如 Recordset对象的重要方法 2 MoveFirst MovePrevious MoveNext MoveLast Move方法MoveFirst方法用于将记录指针移动到第1条记录 MovePrevious方法用于将记录指针向后 或向上 移动一条记录 MoveNext方法用于将记录指针向前 或向下 移动一条记录 MoveLast方法用于将指针移动到最后一条记录 Move方法用于将指针移动到指定的记录 语法为 Recordset对象 Movenumber start其中start表示指针移动的开始位置 如省略默认为当前指针位置 number表示从start设置的起始位置向前或向后移动number条记录 Recordset对象的重要方法 3 AddNew Delete Update CancelUpdate方法这一组方法用来添加 删除和更新记录 添加记录时一般要同时用到AddNew方法和Update方法 例如 删除记录时比较简单 首先将指针移动到要删除的记录 然后利用Delete方法就可以删除当前记录 不过还要用Update方法更新数据库 更新记录时首先将指针移动到要更新记录 然后直接给字段赋值 之后使用Update方法更新数据库即可 CancelUpdate方法用来取消刚才添加 删除和更新记录的操作 Recordset对象的重要方法 4 Find方法该方法用来查找符合条件的单个记录 语法如下 Recordset对象实例 Findcriteria skipRows searchDirection start下面来看两个常用的例子 Recordset对象的重要方法 5 GetRows方法该方法用来从记录集中当前记录开始返回多条记录 它将符合要求的数据返回给一个二维数组 例如下面语句将从当前记录开始返回10条记录 9 4 3利用Recordset对象存取数据库 利用Recordset对象也可以执行查询 添加 删除和更新记录的操作 其中查询记录和之前学的基本一样 而添加 删除和更新记录就要用到上一节讲述的AddNew Delete和Update方法 下面请看示例 Recordset对象存取数据库示例 9 4 4添加不完整的记录 下面就讲解利用Recordset对象的AddNew方法来添加不完整记录的方法 9 4 5分页显示数据 分页显示示意图 分页显示数据的思想是 首先显示第1页数据 并且在下方提供页码链接 当客户选择页码时 仍然传递到本文件 并显示新的一页 分页显示数据示例 9 4 6Field对象和Fields集合 Field对象又称字段对象 是Recordset的子对象 简单地说 一个记录集就好比一个电子表格 该表格内总是包含有许多列 字段 每一个字段就是一个Field对象 而所有Field对象组合起来就是一个Fields集合 输出字段值的几种方法 Response Writers name Response Writers Fields name Response Writers Fields name ValueResponse Writers Fields Item name ValueResponse Writers 1 Response Writers Fields 1 Response Writers Fields 1 ValueResponse Writers Fields Item 1 Value Fields集合的属性和方法 1 Count属性该属性用于返回Fields集合中Fields对象的数目 语法为 Recordset对象实例 Fields Count 2 Item方法Fields集合中包含了多个Field对象 而利用Item方法就可以建立每一个Field对象的实例 语法为 SetField对象实例 Recordset对象实例 Fields Item index 或者SetField对象实例 Recordset对象实例 Fields Item string Field对象的属性和方法 Field对象常用属性和方法如下 Field对象的常用属性示例 Fields集合与Field对象的反思 由于Field对象实在太重要了 因此ASP把它作为默认的了 Fields Item Value都可以省略不写 比如 在上面的例子中 其实不需要建立Field对象 直接用如下语句即可输出属性值 9 5存取SQLServer数据库 存取SQLServer数据库 以下简称SQL数据库 其实和存取Access数据库是一样的 只是数据库连接字符串略有区别 其他部分基本一样 下面将着重介绍具体的连接方法 假设已经建立了一个SQL数据库Database名称为sqltest 数据库登录账号jjshang 登录密码123456 ODBC数据源名称为test 数据表和字段与Access数据库address mdb基本相似 1 基于ODBC数据源的连接方式 同连接Access数据库一样 也可以省略为 2 基于ODBC但没有数据源的连接 连接方法如下 其中Server参数表示SQL数据库服务器地址 localhost表示本机 也可以使用127 0 0 1或本机IP地址 如果使用其他服务器上的SQL数据库 只要将localhost替换为该服务器的IP地址即可 3 创建基于OLEDB的连接 SQL数据库也可以使用SQLServer的OLEDB提供程序连接 例子如下 存取SQL数据库总结 连上SQL数据库后 所有操作同Access数据库 程序基本不用改动 需要特别说明的是 在SQL语句中 日期字段值两边的 号要改为单引号 Access数据库和SQL数据库是可以相互转化的可以将Access数据库导入SQL 或者将SQL数据库导出为Access数据库 实际开发时 可以先用Access数据库 这样方便些 等基本上开发好后 再导入到SQL数据库中 而要修改的是就是个别字段的类型和连接数据库的语句 但是SQL数据库还是要稳定些 大型网站应该采用SQL数据库 9 6对多个表进行组合查询 多个表中组合查询数据的情况也就是说从这个表中取若干个字段 再从另一个表中取若干个字段 其实主要用到的就是Select语句中的组合查询语句 下面我们举例说明 建立数据库userinfo mdb 它包括两张表 表tbUsers包含用户名 密码 真实姓名 性别等字段 表tbLog包括用户名 登录IP 登录时间字段 现在需要从tbUsers中选取用户名和真实姓名 从daylog中选取登录IP和登录时间 具体请看代码 多个表进行组合查询的示例 9 7通讯录综合示例 9 7 1通讯录的设计9 7 2通讯录的实现9 7 3关于通讯录的讨论 9 7 1通讯录的设计 现在就来综合前两章所学内容 来实现一个功能更为复杂的通讯录 本通讯录要求能够分页 排序显示数据 并在详细页面中显示详细信息 能够添加 更新和删除记录 能够查找记录 实际上就是要将前面所学功能整合到一起 本通讯录具体包括如下9个文件 address mdb 数据库文件 odbc connection asp 连接数据库文件 config asp 配置文件 用来声明一些常数 index asp 首页 使用分页和排序显示所有人员信息 particular asp 显示人员详细信息文件 search asp 查找人员文件 insert asp 添加人员文件 delete asp 删除人员文件 update asp 更新人员信息文件 9 7 2通讯录的实现 1 下面就简要讲解一下每个文件的重点和难点 1 数据库连接文件odbc connection asp由于很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国钢结构工业厂房设计标准化与施工效率提升报告
- 四川省绵阳富乐国际2026届物理八上期末监测试题含解析
- 2026届四川省自贡市物理八年级第一学期期末预测试题含解析
- 奢侈品闪送网行业供应链管理优化报告
- 互联网+农业市场竞争策略调整与乡村振兴可行性研究报告
- 震动监测装置在仓储物流行业的2025年应用前景报告
- 无人机巢矩阵在智慧城市建设中的基础设施应用报告
- 血液采集服务行业中小企业市场拓展策略报告
- 空域管理云在航空物流中的智能仓储解决方案报告
- 县域商业体2025年县域文化旅游资源开发与利用研究报告
- 拆除工程环境保护方案及措施
- 2025年度保密教育线上培训考试部分试题及参考答案
- 18项医疗核心制度题库(含答案)
- 科技美肤基础知识培训课件
- 《幼儿园开学安全第一课》课件
- 托幼卫生保健知识培训课件
- 新交际英语(2024)二年级上册全册核心素养教案
- 同济大学《通信原理》2024-2025学年第一学期期末试卷
- 物流业务员培训课件
- 企业质量管理培训
- 2025年物流仓储行业当前竞争格局与未来发展趋势分析报告
评论
0/150
提交评论