370 likes | 586 Views
第十章 数据库技术. 10.1 数据库基础 10.2 可视化数据库管理器 10.3 数据控件 10.4 ADO 数据控件 10.5 结构化查询语言 (SQL). 数据库. 表. 10.1 数据库基础. 数据库:存储在计算机内有组织、可共享的数据集合。. 优点:数据结构化、可共享、数据独立性高、由数据库管理系统( DBMS )统一管理. 数据库按照数据的组织结构分为:层次型、网状型和关系型。. 字段. 记录. 关系型数据库模型. 主关键字. 用户. DBMS. 数据库. 应用程序. 数据库的访问方式.
E N D
第十章 数据库技术 10.1 数据库基础 10.2 可视化数据库管理器 10.3 数据控件 10.4 ADO数据控件 10.5 结构化查询语言(SQL)
数据库 表 10.1 数据库基础 数据库:存储在计算机内有组织、可共享的数据集合。 • 优点:数据结构化、可共享、数据独立性高、由数据库管理系统(DBMS)统一管理 • 数据库按照数据的组织结构分为:层次型、网状型和关系型。
字段 记录 关系型数据库模型 主关键字
用户 DBMS 数据库 应用程序 数据库的访问方式
VB中数据库的操作层次 • 在可视化的数据管理器中操作数据库 • 使用数据库控件操作数据库 • 使用数据访问对象操作数据库
10.2 可视化数据库管理器 在VB开发环境内单击外接程序菜单中的可视化数据管理器命令可打开可视数据管理器。
建立Student.mdb 数据库,所含学生基本情况表结构如下: 数据库管理器使用小结: 1.建立新表: 鼠标右键单击数据库窗口,弹出菜单,选择对应命令。 2.打开、删除表,修改表结构和建立表间的关联等操作: 右键单击数据库窗口内的表名,弹出菜单,选择对应命令。 3.编辑记录: 双击表名,打开表格输入窗,编辑、增删记录。
10.3 数 据 控 件 数据控件: VB专为访问数据库而设计的一种控件。 VB6.0支持的三种数据控件: 1.数据访问对象DAO(Data Access Object)数据控件 2.远程数据对象RDO(Remote Data Object)数据控件 3.活动数据对象ADO(ActiveX Data Object)数据控件
首记录 末记录 前一记录 后一记录 DAO数据控件(Data控件) Data控件的常用属性: .Connection:确定数据控件要访问的数据类型 .DatabaseName:确定所连接的数据库文件名 .RecordSource:确定所要访问的数据源
数据库 记录集 绑定控件 姓名 庄前 性别 女 数据控件只能连接数据库产生记录集,不能显示记录集中的数据,要显示记录集中的数据必须通过能与它绑定的控件来实现。 常用绑定控件
学号 姓名 专业 课程 成绩 990001 万林 物理 数学 85 990002 庄前 物理 外语 90 。。。 。。。 。。。 。。。。。 数据库 记录集 数据绑定控件的属性设置 1. 设置数据绑定控件的DataSource属性为窗体上的某个数据控件 2. 设置数据绑定控件的DataField属性为数据源的某个字段 Data控件、记录集与绑定控件
例10.1设计一个窗体显示Student.mdb数据库中基本情况表的内容。例10.1设计一个窗体显示Student.mdb数据库中基本情况表的内容。 例10.2用一个数据网格控件MsFlexGrid显示Student.mdb数据库中基本情况表的内容。 属性: Rows 、Cols (网格的行或列数); FixedRows 、FixedCols (不可卷动的行或列数)。
学号 课程 成绩 990001 数学 85 学号 姓名 性别 专业 出生日期 990001 万林 男 物理 82-1-11 990002 庄前 女 物理 82-9-21 。。。 。。。 。。。 。。。 。。。 (表一) 数据库 记录集 学号 姓名 专业 课程 成绩 990001 万林 物理 数学 85 990002 庄前 物理 外语 90 。。。 。。。 。。。 。。。。。 10.3.2 数据控件中的记录集对象
数据库 记录集 在VB中数据库内的表格不允许直接访问,而只能通过记录集对象进行记录的操作和浏览,因此,记录集是一种浏览数据库的工具。
10.3.5 记录集的常用属性与方法 1. 记录集的属性 Bof BookMark RecordCount Eof
MoveFirst MoveNext MovePrevious MoveLast 2. 记录集的方法 Nomarch=False Data1.Recordset. FindFirst "姓名=' 黎明' " • FindFirst、FindLast、FindNext、FindPrevious方法可在指定的Dynaset或Snapshot类型的记录集对象中查找。 • Seek方法在Table表中查找。 • Nomarch属性可判定是否找到。 例10.8建立如图10.19所示的学生信息记录编辑器。
11.3.5 记录的增删改操作 数据库 UpData 填入新数据 Data1.Recordset. AddNew 增加记录 • 编辑记录 删除记录 • 调用Edit方法。 调用Delete方法。 • 给各字段赋值。 移动记录指针。 • 调用Update方法。 例11.5 对数据库提供增、删、改和查找功能。
10.4 ADO数据控件 10.4.1 ADO对象模型 ADO是Microsoft处理数据库信息的最新技术,它是一种ActiveX对象,采用了被称为OLE DB的数据访问模式。它是数据访问对象DAO、远程数据对象RDO和开放数据库互连ODBC三种方式的扩展。ADO对象模型更为简化,不论是存取本地的还是远程的数据,都提供了统一的接口。 10.4.2 使用ADO数据控件 在使用ADO数据控件前,必须先通过“工程/部件”菜单命令选择“Microsoft ADO Data Control 6.0(OLE DB)”选项,将ADO数据控件添加到工具箱。ADO数据控件与Visual Basic的内部数据控件很相似,它允许使用ADO数据控件的基本属性快速地创建与数据库的连接。
工具箱内ADO控件图标形状 画在窗体上的外观 能够利用三种记录集对象访问数据库中的数据,连接方法:
单击 连接操作------鼠标右击ADO控件,选择快捷菜单 “ADODC属性”命令,打开ADO控件属性页窗:
选定 选定 数据库
选定 设置完成后,ADO控件的ConnectionString属性为: Provider=Microsoft.Jet.OLEDB.3.51; Persist Security Info=False; Data Source=Student.mdb RecordSource属性为:基本情况(表) ADO控件的的其他操作与Data控件相同。
MSFlexGrid DataGrid MSHFlexGrid MSChart DataCombo DataList 11.4.3 ADO控件上绑定控件的使用 例11.6使用ADO控件和DataGrid网格控件浏览数据库。
11.4.4 使用数据窗体向导 通过数据窗体向导能建立一个访问数据的窗口。在使用前必须执行“外接程序/外接程序管理器”命令,将“VB 6数据窗体向导”装入到“外接程序”菜单中。 步骤1:执行“外接程序”菜单中的“数据窗体向导”命令。
数据库 步骤3:选择具体的数据库文件。
步骤6:选择所需要的操作按钮。 例11.7
11.5 结构化查询语言(SQL) 11.5.1 结构化查询语言 结构化查询语言SQL是操作数据库的工业标准语言。在SQL语言中,指定要做什么而不是怎么做。不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。 利用SQL,可以确切指定想要检索的记录以及按什么顺序检索。可以在设计或运行时对数据控件使用SQL语句。用户提出一个查询,数据库返回所有与该查询匹配的记录。
11.5.2使用SELECT语句查询 1.使用SELECT语句 从数据库中的获取数据称为查询数据库,查询数据库通过使用SELECT语句。常见的SELECT语句形式为: Select字段表From表名 Where 查询条件 Group By分组字段 Order By字段[Asc|Desc] 可以在设计或代码中对数据控件的RecordSource属性设置SQL语句,也可将SQL语句赋予对象变量。 在建立SQL语句时,如果需要通过变量构造条件,则需要在应用程序中将变量连接到SELECT语句。例如: "Select * From 基本情况 Where 专业 =' " & Text1 & "' " 例11.8将例11.4中的查找功能改用SQL语句处理。 例11.9用SQL语句从两个数据表中选择数据构成记录集。 例11.10用SQL指令按专业统计Student.mdb数据库各专业的人数。
例11.11 在ADO数据控件上使用SQL语句。将例11.9中的Data控件改用ADO数据控件,用SQL语句从Student.mdb数据库的两个数据表中选择数据构成记录集。 例11.12 设计一个窗体,计算Student.mdb数据库内学生成绩表中每个学生的平均成绩,产生姓名、平均成绩和最低成绩三项数据,按平均成绩升序排列数据,并用该数据作图。 *2. 使用UPDATE语句修改记录 UPDATE创建一个更新查询来按照某个条件修改特定表中的字段值。其语法如下: UPDATE [表集合] SET [表达式] WHERE [条件] 例11.12a 本例把学生平均成绩字段的值增加了10%,并刷新网格。 *3. 使用DELETE语句查询可以创建删除查询来删除FROM子句中列出的、满足WHERE子句的一个或多个表中的记录,其语法所示如下: DELETE [表字段] FROM [表集合] WHERE [条件] 例11.12b 删除例11.12a所产生temp表中平均成绩<80的全部记录,并刷新网格。
*11.5.3 使用对象变量访问数据库 DAO对象定义了一个可编程的对象集合。可按下列方法定义数据库对象和记录集对象,不必在窗体上放置数据控件。 要想在程序中使用DAO对象,必须先为当前工程引用DAO对象的数据库引擎库。 引用方式:执行工程菜单的引用命令,启动引用对话框,在清单中选取“Microsoft DAO 3.51 Object Library”项目。
使用DAO模型访问数据库的例题。 例11.12d使用DAO模型访问数据库,分页显示基本情况表的记录。 本程序通过Bookmark属性设置当前记录的书签,用于当前页上记录的定位。 例11.12e 使用DAO模型访问数据库,约束绑定控件。 记录集的字段对象 可以使用如下几种方法获取: Recordset.Fields("字段名称" )、Recordset("字段名称") Recordset.Fields("数字")、Recordset("数字") 在DAO中记录集对象为对象变量,故字段可用rs(j)表示。
*11.5.4 ADO对象 使用ADO对象访问数据库比DAO对象模型更为简化,不论是存取本地的还是远程的数据,都提供了统一的接口。