数据库应用程序开发.ppt_第1页
数据库应用程序开发.ppt_第2页
数据库应用程序开发.ppt_第3页
数据库应用程序开发.ppt_第4页
数据库应用程序开发.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1 第11章数据库应用程序开发 11 1数据库概述11 2ADO数据控件11 3记录集对象Recordset11 4使用SQL查询数据库11 5报表制作11 6综合应用 2 11 1数据库概述 数据库以一定的组织方式将相关的数据组织在一起 存放在计算机外存储器 能为多个用户共享 与应用程序彼此独立的一组数据的集合 VisualBasic支持多种类型的数据库 如Access数据库 FoxPro数据库 MicrosoftExcel SQLServer和Oracle等 3 11 1 1关系型数据库模型 关系型数据库模型将数据用表的集合来表示 通过建立简单表之间的关系来定义结构 而不是根据数据的物理存储方式建立数据中的关系 不管表在数据库文件中的物理存储方式如何 都可以把它看作一组行和列 4 关系型数据库 表是有关信息的逻辑组 行被称为记录 列则被称为字段 5 11 1 2使用SQL查询数据库 结构化查询语言 StructureQueryLanguage SQL 是操作关系数据库的工业标准语言 通过SQL命令 可以从数据库的多个表中获取数据 也可对数据进行更新操作 SQL的主要语句 6 SELECT语句 1 SELECT语句的基本语法形式SELECT目标表达式列表FROM表名 WHERE查询条件 GROUPBY分组字段HAVING分组条件 ORDERBY排序关键字段 ASC DESC 它包含4部分 其中SELECT和FROM子句是必须的 通过使用SELECT语句返回一个记录集 例在学生基本情况表中查询物理系的学生情况 SELECT FROM基本情况WHERE专业 物理 7 SELECT语句 输出表达式 目标表达式为查询结果要显示的字段清单 字段间用逗号分开 数据的显示顺序由字段清单的顺序决定 可用星号 代表所有字段 可用AS短语指定字段别名 可通过构造表达式对原始数据进行复杂的运算处理 产生查询结果 例如 根据出生年月计算每个学生的年龄SELECT姓名 Year Date Year 出生年月 AS年龄FROM基本情况 8 SELECT语句 查询条件 WHERE子句用于限制记录的选择例如 查询1985 01 01到1986 12 31之间出生的学生 SELECT FROM基本情况WHERE出生年月BETWEEN 1985 01 01 AND 1986 12 31 要枚举出若干项进行查询 使用运算符IN例如 查询物理系和数学系的学生数据 SELECT FROM基本情况WHERE专业IN 物理 数学 等价于 SELECT FROM基本情况WHERE专业 物理 OR专业 数学 9 SELECT语句 合计函数 合计函数用于对记录集进行统计 例如 统计物理系学生的人数 SELECTCOUNT AS学生人数FROM基本情况WHERE专业 物理 COUNT 在统计时包含值为空值的记录COUNT 表达式 统计时忽略表达式值为空值的记录 10 SELECT语句 分组 GROUPBY子句将指定字段列表中有相同值的记录合并成一条记录 例如 计算每个学生各门课程平均分 SELECT学号 AVG 成绩 AS平均分FROM成绩表GROUPBY学号要对分组后的数据进行过滤 可在GROUPBY子句后结合HAVING子句在分组中选择 例如 查询平均分在80分以上的学生 SELECT学号 AVG 成绩 AS平均分FROM成绩表GROUPBY学号HAVINGAVG 成绩 80 11 SELECT语句 排序 ORDERBY子句决定了查询结果的排列顺序在ORDERBY子句中 可以指定一个或多个字段作为排序关键字 ASC选项代表升序 DESC代表降序 12 SELECT语句 多表连接 若查询的数据分布在多个表中 则必须建立连接查询 SELECT目标表达式列表FROM表1 表2WHERE表1 字段 表2 字段例如 学生成绩表中只有学号 如何在查看学生成绩的同时能够直观地看到学生姓名 这就要在两表之间建立连接 SQL语句如下 SELECT基本情况 姓名 成绩表 FROM基本情况 成绩表WHERE成绩表 学号 基本情况 学号 13 VB NET数据库访问 11 2 1VB NET数据库访问过程数据库应用程序引例例11 1设计一个窗体 用DataGrid控件显示Student mdb数据库中 基本情况 表的内容 14 11 2 1数据库访问过程 VB NET采用ADO ActiveXDataObjects 数据访问技术 编写本程序 需要完成以下工作 界面设计在窗体上添加DataGrid控件创建对象连接绑定数据到DataGrid控件使其能显示在窗体上 程序代码 15 VB NET数据库访问过程 应用程序通过连接对象与服务器上的数据源建立连接 不同类型的数据库使用各自的连接提供程序 16 数据访问过程 命令对象发出SQL命令从数据源中获取数据数据集对象用来保存所查询到的数据记录数据适配器用于在数据源和数据集之间交换数据 当数据传输到客户端后 ADO NET断开与数据源的连接 应用程序离线工作如果应用程序改变了数据集的内容 通过重新连接来提交变化 17 数据集 数据集是一个容器 一个数据集可以包含多张数据表及数据表之间的关系 这些表可以来自多个数据库或电子表格之类的非数据库源 一旦数据在数据集内 则不管它的原始源是什么 都可以使用一致的对象模型对它进行操作 在ADO NET中 数据传输的格式是XML 是基于文本的标准格式 不使用二进制信息 它可以通过任何协议发送 ADO NET自动根据需要将数据转换为XML或从XML转换出数据 而用户不必知道XML 18 11 2 2使用数据控件访问数据库 ADO NET数据控件对象有4套 用于SQLServer7 0 以Sql为前导名 用于Oracle数据库 以Orc为前导名 用于ODBC数据源 以Odbc为前导名 用于OLEDB接口的数据库 以OleDb为前导名 19 使用OleDb数据控件 OleDb数据控件对象是一个通用对象 可访问目前流行的数据库系统 20 使用OleDb访问数据库 1 启动数据适配器配置向导将数据适配器对象OledbDataAdapter从工具箱拖放到窗体或组件上 2 创建连接 21 选择提供程序 选择提供程序 22 指定访问的数据库 指定要访问的数据库文件 23 配置命令对象 选择使用SQL语句建立查询 24 命令对象重要属性 命令对象最重要的属性Connection指定连接对象CommandType使用命令的类型CommandText操作命令的内容 25 连接对象重要属性 连接对象最重要的属性是ConnectionString 它是一个字符串 包含了用于与数据源建立连接的相关信息 典型的ConnectionString属性值如下 Provider Microsoft Jet OLEDB 4 0 DataSource Student mdbProvide 指定连接提供程序的名称 DataSource 用于指定要连接的数据源文件 26 生成数据集 选择 数据 生成数据集 命令 打开 生成数据集 对话框 1 2 命名数据集 3 4 27 生成数据集 选择 数据 生成数据集 命令 打开 生成数据集 对话框 1 2 命名数据集 3 4 注意 这里的DataSet1是指一个数据集的定义 它是一个用xml格式表示的 文件名为Dataset1 xsd的数据集定义文件 并不包含任何的数据库中的数据 而按此文件架构产生的DataSet11才是一个包含实际数据的数据集对象实例 28 11 2 3数据绑定 什么是数据绑定 数据绑定是一个过程 即在运行时自动为与数据集中的元素关联的控件设置属性 以便通过控件显示数据集中的数据 29 数据绑定 Windows窗体有简单数据绑定和复杂数据绑定简单数据绑定简单数据绑定就是将控件绑定到单个数据字段 每个控件仅显示数据集中的一个字段值 最常用的简单数据绑定是将数据绑定到文本框和标签 要建立数据绑定 需要在设计或运行时对控件的DataBinding属性进行设置 30 简单数据绑定 例11 2数据绑定的操作过程界面设计 创建和配置数据集 设置绑定属性 程序代码 PrivateSubForm1 Load HandlesMyBase LoadDataSet11 Clear OleDbDataAdapter1 Fill DataSet11 基本情况 EndSub 31 简单数据绑定 使用BindingContext对象浏览数据记录Position属性数据集当前记录的位置序号Count属性数据表中的记录条数转跳到第一条记录Me BindingContext DataSet11 基本情况 Position 0转跳到上一条记录Me BindingContext DataSet11 基本情况 Position 1转跳到下一条记录Me BindingContext DataSet11 基本情况 Position 1最后一条记录的Position属性值等于Count属性值 1 32 复杂数据绑定 复杂数据绑定允许将多个数据元素绑定到一个控件 同时显示记录源中的多行或多列 支持复杂数据绑定的控件 数据网格DataGrid 组合框ComboBox和列表框ListBox等 33 复杂数据绑定 复杂数据绑定属性设置 34 复杂数据绑定 例11 3复杂数据绑定的操作过程界面设计 创建和配置数据集 数据绑定本例DataGrid控件要绑定不同的表 故需要通过代码设置控件的DataSource属性 程序代码 PrivateSubButton1 Click HandlesButton1 ClickDataGrid1 DataSource DataSet11 Tables 基本情况 EndSubPrivateSubButton2 Click HandlesButton2 ClickDataGrid1 DataSource DataSet11 Tables 成绩表 EndSub 35 11 2 3使用代码访问数据库 创建数据对象的代码 Dim数据对象AsNew对象类 参数 例11 4用代码实现例11 2的功能界面设计 导入ADO NET名称空间ImportsSystem DataImportsSystem Data OleDb 36 创建对象 创建OleDbConnection连接对象创建连接Student mdb的对象objConn 代码 DimstrConnAsString Provider Microsoft Jet OLEDB 4 0 DataSource Student mdb DimobjConnAsNewOleDbConnection strConn objConn Open 创建创建OleDbDataAdapter对象DimstrSql Select From基本情况 DimobjAdapAsNewOleDbDataAdapter strSql objConn 37 创建对象 创建数据集对象DimobjDSetAsNewDataSet用数据集的 基本情况 表填充objDSet对象objAdap Fill objDSet 基本情况 38 使用代码绑定数据 实现数据绑定使用控件的DataBindings属性的Add方法建立绑定 控件对象 DataBindings Add NewBinding 控件属性 数据集 字段名 例将字段姓名绑定到控件TextBox1的Text属性 TextBox1 DataBindings Add NewBinding Text objDSet 基本情况 姓名 39 记录的浏览 浏览记录 各命令按钮的Click事件代码为 首记录 Me BindingContext objDSet 基本情况 Position 0上一条 Me BindingContext objDSet 基本情况 Position 1下一条 Me BindingContext objDSet 基本情况 Position 1尾记录 Me BindingContext objDSet 基本情况 Position Me BindingContext objDSet 基本情况 Count 1 40 11 3数据库操作 11 3 1数据库编辑操作常见的编辑操作就是对数据的增 删 改 使用命令对象直接对数据源进行操作 方法如下 CommandText属性设置SQL语句调用Execute方法执行SQL语句ExecuteReader返回DataReader结果集ExecuteNonQuery不返回数据的SQL命令 增 删 改 ExecuteScalar返回单个数据的SQL命令 例对数据的统计 求和 41 增加数据记录 使用Insert语句插入一条记录到数据源 例如 Insertinto基本情况 姓名 学号 Values 李力 50101 实际参数可通过文本框输入 可在Values短语中使用 标记传递实参值 Insertinto基本情况 姓名 学号 Values name num 而参数定义的语法为 Dim参数名AsnewOleDBparameter sql查询或更新字符串中的映射名 数据类型 长度 42 增加数据记录例 例11 5在例11 4的基础上添加增加记录 删除记录 修改记录按钮 当单击 增加 按钮时 先清空文本框 并将按钮提示改变成 确认 当在文本框输入数据后 再单击 确认 将文本框内输入的数据构成一条记录插入到数据源 重新填充数据集并恢复按钮提示 代码说明 43 删除数据源内的记录 删除数据源内的记录使用Delect语句Delect基本情况Where学号 50102实参50102通过文本框输入 要用输入值构成删除条件 除了采用参数传递方法外 也可用字符连接运算符拼接变量形成条件 例如 Delect基本情况Where学号 TextBox2 Text注意 如果字段的类型为字符型 则输入值的两侧加上单引号 Delect基本情况Where学号 TextBox2 Text 字段的类型为日期型 将单引号改为 44 删除数据记录 删除数据集内的行使用Rows对象的Delete方法例 删除Tables 基本情况 中的第三条记录 objDSet Tables 基本情况 Rows 2 DeleteDelete方法并不真正实现删除 而只是在Rows集合中对指定的行作删除标记 直到数据集对象调用AcceptChanges方法的时候 才真正被删除 如果是RejectChanges方法被调用 那么Delete方法删除的数据行对象将被恢复 例11 6为例11 5中删除按钮添加代码 代码说明 45 修改数据记录 修改数据源中的记录使用Update语句Update基本情况Set专业 计算机 Where学号 50102修改程序编写与增加记录类似 其关键是 使用参数传递或字符动态拼接的方法将新的数据传递到Update语句能在数据源中定位要更新的记录 通常可使用关键字段作为定位条件 对于数据集 数据绑定结构通常是双向的 能自动将更改从数据绑定控件发送到数据集 例11 7为修改按钮添加代码 代码说明 46 11 3 2数据库查询操作 方法一通过命令对象执行SQL语句 从数据源中获取信息 查询条件由Select语句的Where短语构成 使用And与Or逻辑运算符组合出复杂的查询条件方法二使用数据集的数据视图 DataView 的筛选功能 47 数据库查询操作 数据视图 DataView 的主要方法与属性 48 模糊查询 模糊查询使用运算符Like 用百分号 来代替任意个不确定的内容 用下划线 代替一个不确定的内容 例如 姓名Like 张 将查询所有张姓的人员 而 姓名Like 张 查询以 张 开头 只有两个字的记录 例11 8设计一个应用程序 演示不同的查询功能 代码说明 49 11 3 3BLOB数据处理 1 预备知识二进制大型对象 BinaryLargeObject BLOB 是指任何需要存入数据库的随机大块字节流数据 例如图形或声音文件 数据库中存放BLOB的字段必须是二进制类

温馨提示

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

评论

0/150

提交评论