程序设计与数据库应用课件09第九章_第1页
程序设计与数据库应用课件09第九章_第2页
程序设计与数据库应用课件09第九章_第3页
程序设计与数据库应用课件09第九章_第4页
程序设计与数据库应用课件09第九章_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第九章数据库应用2.ADOData控件3.数据绑定控件1.

VB数据库访问技术

第九章数据库应用4.应用举例

数据库基本概念

根据数据模型,即实现数据结构化所采用的联系方式,数据库可以分为层次数据库、网状数据库和关系数据库。

关系数据库的有关概念

1.

关系(表)

在关系数据库中,数据以关系的形式出现,可以把关系理解成一张二维表(Table)。2.

记录(行)

每张二维表均由若干行和列构成,其中每一行称为一条记录(Record)3.

字段(列)

二维表中的每一列称为一个字段(Field),每一列均有一个名字,称为字段名,各字段名互不相同。4.

主键

关系数据库中的某个字段或某些字段的组合定义为主键(PrimaryKey)。每条记录的主键值都是唯一的,这就保证了可以通过主键唯一标识一条记录。例子:创建access数据库数据库基本概念

9.1.2VB数据库访问技术

VB用户程序不能够直接访问数据库,必须通过数据库访问接口来访问数据库。VB提供了多种数据库访问接口和不同的数据库访问技术。1.使用数据控件访问数据库2.使用数据对象编程访问数据库3.用ODBC访问数据库9.3ADOData控件

VB提供的数据访问控件:将一个数据源连接到一个数据绑定控件。Data控件内部控件,使用方便。开发时间较早,不支持一些较新的数据库。基于DAO技术,无法并发。ADOData控件。ADOData控件应用范围更广,性能和使用方便性等要优于Data控件。可以访问最新版本的数据库。需要额外的安装。所以我们主要介绍ADOData控件。ADO数据控件ADO数据控件是目前流行的数据访问控件,它支持OLEDB数据访问模型。使用ADO数据访问控件,除了可以访问大型关系型数据库管理系统和小型个人数据库管理系统。ADO数据控件是ActiveX控件,需要手工将其添加到工具箱中。选择“工程”菜单下的“部件”。Adodc控件在窗体上的形式ADO数据控件的主要属性ConnectionString属性

用于建立与数据源的连接CommandType属性

指明命令的类型,共有四种RecordSource属性

用于设置ADO记录集的内容MaxRecords属性

决定记录集中的记录的最大数目Recordset属性

用于存放从数据提供者那里获得的查询记录Visible属性设置运行时控件是否可见

ConnectionString属性单击ADO数据控件属性页中的“ConnectionString”属性,然后单击按钮Provider=Microsoft.Jet.OLEDB.4.0;DataSource=stuinfo.mdb;PersistSecurityInfo=FalseCommandType属性adCmdUnknown:默认值。表示RecordSource中的命令类型未知。adCmdTable:RecordSource属性的内容是一个表名。adCmdText:RecordSource属性的内容是一个查询语句文本串。adCmdStoredProc:RecordSource属性的内容是一个存储过程名。RecordSource属性用于设置ADO记录集的内容.这个内容可以来自于一张表,也可以来自一个查询语句,也可以来自一个存储过程的执行记录。RecordSource属性的值与CommandType属性的值有关,两者协同使用。设置RecordSource属性在已经设置好ConnectionString属性的ADO数据控件上右击鼠标,在弹出的菜单中选择“ADODC属性”命令,在弹出此对话框上选择“记录源”标签页。MaxRecords属性决定了记录集中的记录的最大数目。这个属性取值大小取决于所检索的记录的大小以及计算机的可用资源(内存)的多少。Visible属性设置运行时控件是否可见ADO数据控件的主要方法Refresh用于更新ADO数据控件属性,使修改后的ADO数据控件属性生效。当修改了ADO数据控件的ConnectionString属性的值时,使用Refresh方法会重新连接一次数据库;当修改了ADO数据控件的RecordSource属性的值时,使用Refresh方法会重新执行RecordSource属性的内容,重新产生记录集。使用Refresh方法的格式为:ADO数据控件名.Refresh

Adodc1.CommandType=adCmdTableAdodc1.RecordSource=“成绩登记表"Adodc1.RefreshADO数据控件的主要事件EndOfRecordset事件当在记录集中移动记录指针时,当记录指针超出了记录集的最后一条记录时,触发此事件。

Error事件只有在没有执行任何VB代码而发生了一个数据访问错误时,才会触发此事件。

WillChangeField和FieldChangeComplete事件当对记录集中的一个或多个字段值进行修改前,触发WillChangeField事件;当对记录集中的一个或多个字段值修改之后,触发FieldChangeComplete事件。

ADO数据控件的主要事件(续)WillChangeRecord和RecordChangeComplete事件当对记录集中的一个或多个记录进行修改前,触发WillChangeRecord事件;当对记录集中的一个或多个记录修改之后,触发RecordChangeComplete事件。

WillMove事件和MoveComplete事件在记录集的当前行记录指针移动之前,触发WillMove事件;在记录集的当前行记录指针移动完成后,触发MoveComplete事件。

9.3ADOData控件

例9.3.1使用ADOData控件连接Access数据库stumanage.mdb中表student,并用DataGrid数据网格控件显示表中数据。由于ADOData控件和DataGrid数据网格控件不是VB的内部控件,因此在使用之前必须将其添加到控件箱中。打开“部件”对话框,选择“MicrosoftADODataControl6.0(OLEDB)”和“MicrosoftDataGridControl6.0(OLEDB)”左边的复选框,单击“确定”按钮,则在控件箱中增加了ADOData控件(Adodc)和数据网格控件(DataGrid)的图标。9.3ADOData控件

将Adodc控件和DataGrid控件放置到窗体中(1)设置Adodc控件的ConnectionString属性:(2)设置Adodc控件的RecordSolurce属性:(3)设置DataGrid控件的DataSource属性:9.3ADOData控件

Recordset对象Recordset对象是ADOData对象的子对象。有自己的属性和方法Recordset属性也称为结果集或记录集,用于存放从数据提供者那里获得的查询记录,这个记录一般存放在客户端内存中。可以在该记录集中添加、删除、修改记录数据和移动记录指针,并可将修改记录用于更新源数据表。所以Recordset属性无法在属性窗口中修改,

只能在代码中应用或设置。ADOData控件对数据库中数据的操作实际上是通过记录集对象Recordset来实现的。ADODC控件的工作原理ADODCRecordSet数据库表Adodc1.refreshAdodc1.Recordeset.updateDataDataForm/ButtonClick()Adodc1.Recordeset.MoveData对某个字段读取或赋值640640RecordSet对象的主要属性BOF:布尔值,如果记录集中记录的当前行指针移到了第一条记录的前边,则此值为真,否则为假。RecordSetRecordSetAdodc1.Recordset.BOFisFalseAdodc1.Recordset.BOFisTrueEOF:布尔值,如果记录集中记录的当前行指针移到了最后一条记录的后边,则此值为真,否则为假。RecordSetRecordSetAdodc1.Recordset.EOFisFalseAdodc1.Recordset.EOFisTrueField对象Field对象用来访问Recordset对象当前记录字段(列)数据。可以获取字段的有关信息,也可以对字段进行添加、删除和修改。一旦获得了记录集,通常接下来就是使用Fields集合来读取记录集中的数据。Fields属性是Field对象的集合,只有一个属性Count,用于返回Field对象的个数。由于Fields集合是Recordset对象的默认属性,因此,在使用时可以省略此名称。例如:Recordset.Fields(0).ValueRecordset(0)示例例:利用Fields对象,得到当前行记录的某字段的值,用法如下:Fields(“字段名”).Value或:Fields(数字).ValueField对象的主要属性

ActualSize

字段中实际存储的数据尺寸。DefinedSize

字段能存储的最大数据量。Name

字段的名称。NumericScale

十进制小数点右边的位数。Field对象的主要属性(续)OriginalValue

在其他用户改变字段之前字段的值。Precision

十进制小数的精度。Type

描述字段的数据类型的常量。Value

字段中存储的数据。RecordSet对象的主要属性(续)AbsolutePosition:记录当前行记录在记录集中的顺序号,记录集记录序号从1开始。ActiveCommand:记录集中创建的命令。ActiveConnection:记录集中创建的连接。Bookmark:记录集中当前行记录的标识号。RecordCount:存放记录集中的记录个数。Sort:将记录集中的记录按某个字段排序。Recordset对象的主要属性(续)EditMode:表示当前记录是否正在被编辑,这个值可以是adEditNone、adEditInProgress、adEditAdd和adEditDelete。Filter:允许用户选择记录集中的部分数据进行操作。其使用方法为:Recordset对象名.Filter=选择表达式其中“选择表达式”的写法同SELECT语句中的WHERE子句。释放过滤的语句为:Recordset对象名.Filter=adFilterNoneSource:记录集来源的命令和SQL查询。RecordSet对象的主要方法1.Move方法组MoveFirst方法:将当前行记录指针移到记录集中的第一行。MovePrevious方法:将当前行记录指针向前移动一行。MoveNext方法:将当前行记录指针向后移动一行。MoveLast方法:将当前行记录指针移到记录集中的最后一行。

Move方法:将记录指针移到任意位置。

Recordset.MoveNumRecordsRecordSet对象的主要方法(续)2.AddNew方法用于在记录集中添加一个新记录。3.Update方法将新记录缓冲区中的记录或者对当前记录的修改真正写到数据库中,从而保存对记录集所作的改动。AddNew和Delete方法都只对缓冲区中的数据进行操作,如果要将缓冲区中的数据保存到数据库中,必须调用Update方法。4.Delete方法删除记录集中当前行记录指针所指的记录,并且这个删除是直接对数据库数据操作的,删除后的数据不可恢复。RecordSet对象的主要方法(续)5.CancelUpdate方法用于取消新添加的记录或对当前记录所做的修改。6.Find方法用于在当前记录集中查找满足条件的记录。Find方法的格式为:

ADO数据控件名.Recordset.Find(“查询条件”)Find中的查询字符串查询条件中包含指定用于搜索的:字段名、比较操作符和值的语句。查询条件中的“比较操作符”可以是“>”(大于)、“<”(小于)、“=”(等于)、“>=”(大于或等于)、“<=”(小于或等于)、“<>”(不等于)或“like”(模式匹配)。

查询条件中的值可以是字符串、浮点数或者日期。字符串值以单引号分界(如“state=‘WA’”)。日期值以“#”(数字记号)分界(如“start_date>#7/22/97#”)。如“比较操作符”为“like”,则字符串“值”可以包含“*”(某字符可出现一次或多次)或者“_”(某字符只出现一次)。(如“statelikeM_*”与Maine和Massachusetts匹配。)。

9.4数据绑定控件ADOData控件可以完成各种数据的操作功能,但不具有显示操作记录的功能。因此VB使用ADOData控件来创建应用程序和数据库之间的连接,而使用数据绑定控件来显示、编辑和修改记录集中的数据。所谓数据绑定,是指控件中的数据显示和操作的记录与数据库中的数据保持实时的一致性。即当控件中的数据改变时,数据库中对应的数据也会发生同样的变化。数据绑定控件也称“数据感知”控件。通常VB中具有DataSource属性的控件都可作为数据绑定控件。9.4数据绑定控件常用绑定控件控件名功能作用DataGrid数据网格可以与数据库的整个表绑定,用于显示或更新数据。TextBox文本框可以与数据库或表中的各类字段绑定,用于显示或更新数据,是最基本的数据绑定控件Label标签可以与数据库或表中的各类字段绑定,用于显示数据,但不能修改数据CheckBox复选框与数据库或表中的逻辑型字段绑定,用于显示或更新数据,复选框为灰色表示其值为NULL9.4数据绑定控件数据绑定控件的主要属性有:(1)DataSource属性:用于指定被绑定控件所绑定的数据控件名,即ADOData控件名。(2)DataField属性:用于指定被绑定控件要显示的字段名。(3)DataChanged属性:用于判定被绑定控件内显示的数据值是否改变。如果已改变,则其值为True,否则为False。9.4数据绑定控件数据绑定控件的使用步骤:数据绑定控件必须与数据控件配合使用才能完成数据处理任务。创建数据绑定控件应用程序的基本操作步骤如下:将ADOData控件添加到应用程序窗体中。设置ADOData控件的ConnectionString属性,建立与数据源的连接信息。向应用程序窗体添加用于显示和编辑数据的各种数据绑定控件。将数据绑定控件的DataSource属性设置为ADOData控件名。将数据绑定控件的DataField属性设置为要显示或编辑的字段名。9.4.3应用举例

例9.4.1创建一个工程,实现对数据表student记录的移动和查询。例9.4.2使用文本框控件和选择框控件显示表中的记录,使用命令按钮对记录进行移动、添加或删除操作。例9.4.3使用DataGrid控件选择性地显示记录集的某些字段,并设置字段的标题。例9.4.4创建一个用户登录界面,用于记名登录应用系统。例9.4.5假设在stumanage.mdb数据库中有一个表final,要求计算每个学生的最后成绩。例9.4.6创建一个考试用的选择题考试程序,能实现自动评分。数据库程序设计的流程打开数据库,用设计视图查看表的结构和字段的类型,然后关闭设计视图(设计视图打开时,其他程序无法访问数据表)添加ADODC和其他需要用到的控件。设置ADODC的ConnectionString和RecordSource设置需要显示数据的控件的DataSource和DataFie

温馨提示

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

评论

0/150

提交评论