第12章 数据库开发.ppt

上传人:hwp****526 文档编号:84378189 上传时间:2023-04-05 格式:PPT 页数:45 大小:267KB
返回 下载 相关 举报
第12章 数据库开发.ppt_第1页
第1页 / 共45页
第12章 数据库开发.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《第12章 数据库开发.ppt》由会员分享,可在线阅读,更多相关《第12章 数据库开发.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第12章章 数据库访问数据库访问12.1 数据库基本知识数据库基本知识12.2 数据库的创建数据库的创建12.3 Data控件及应用控件及应用12.4 ADO Data控件及应用控件及应用12.5 SQL语言语言 12.6 ADO对象及应用对象及应用4/2/20231清华大学出版社【目的要求】1.了解数据库的基本理论知识;2.了解data控件操作数据库的方法;3.了解Dao对象创建数据库的方法;4.掌握SQL语句在高级语言中的书写方法;5.掌握ADO控件的基本属性和操作数据库的基本方法;6.掌握ADO对象的基本结构和对数据库的操作方法。【重点】ADO对象的层次结构与常用对象的属性、方法ADO

2、对象操作数据库的基本方法4/2/20232清华大学出版社12.1 12.1 数据库基本知识数据库基本知识数据库基本知识数据库基本知识 12.2 数据库的创建数据库的创建 12.2.1 利用可视化数据管理器(利用可视化数据管理器(VisData)创建数据库创建数据库注意注意:VB所提供的【可视化数据管理器】创建数据库的方法,在实际使用中,操作很不方便,并且该方法所创建的Access数据库版本低。在实际应用中时应使用现在流行的Access2002来创建数据库。高版本的Access数据库不能被data控件识别。4/2/20233清华大学出版社12.2.2 用DAO对象创建数据库1、对DAO对象的引用

3、4/2/20234清华大学出版社【例例12.1】用用DAO对象来创建数据库对象来创建数据库student.mdb。Dim MyData As DatabaseDim MyTable As TableDefDim MyField As FieldSet MyData=Workspaces(0).CreateDatabase(e:student.mdb,dbLangGeneral,dbversion70)Set MyTable=MyData.CreateTableDef(jbqk)Set MyField=MyTable.CreateField(学号,dbText,6)MyTable.Fields.

4、Append MyFieldSet MyField=MyTable.CreateField(姓名,dbText,10)MyTable.Fields.Append MyFieldSet MyField=MyTable.CreateField(性别,dbText,10)4/2/20235清华大学出版社MyTable.Fields.Append MyFieldSet MyField=MyTable.CreateField(班级,dbText,20)MyTable.Fields.Append MyFieldSet MyField=MyTable.CreateField(英语,dbInteger)MyT

5、able.Fields.Append MyFieldSet MyField=MyTable.CreateField(计算机,dbInteger)MyTable.Fields.Append MyFieldSet MyField=MyTable.CreateField(照片,dbText,60)MyTable.Fields.Append MyFieldMyData.TableDefs.Append MyTable4/2/20236清华大学出版社12.3 Data控件及应用Data数据控件提供了一种访问数据库中数据的方法。数据控件只是负责数据库和工程之间的数据交换,本身并不显示数据,要借助Visua

6、l Basic控件中的绑定控件来显示数据表中的数据。数据控件使得用户可以不编写任何代码就能完成对数据库的大部分操作。Data数据控件可以操作如Microsoft Access,Microsoft FoxPro和dBase等数据库。也可用Data控件来访问Microsoft Excel,Lotust 和标准ASCII文本文件等数据源。此外,Data控件还可访问和操作远程的开放式数据库互连(ODBC)数据库,如Microsoft SQL服务器和Oracle。4/2/20237清华大学出版社12.3.1 Data控件的基本功能及常用属性控件的基本功能及常用属性 1.Data控件常用属性Connect

7、:设置或返回数据数据库类型。可通过【属性】窗口设置Connect属性,也可以在运行时通过代码来设置,例:Data1.Connect=”Excel 9.0”如果处理的是Access格式的数据库,则不需要设置此属性。DatabaseName:设置或返回被访问数据库的名称或路径。可在设计时用【属性】窗口设置该属性;也可以在运行时通过代码来设置,例:Data1.DatabaseName=App.Path+student.mdb App.Path:表示当前路径。4/2/20238清华大学出版社RecordSource:设置或返回数据库中表或查询的名称。也可以在运行时通过代码来设置,例:Data1.Rec

8、ordSource=jbqk RecordsetType:在通过代码或其他数据控件建立记录集时设置这个属性,但必须确保绑定的数据控件的DataField属性与记录集中的域匹配。ReadOnly:在对数据库只查看不修改时,通常将此属性设置为True;Exclusive:当这个属性值设置为True时,则在通过关闭数据库撤消这个设置前,其他任何用户都不能对数据库进行访问(独占模式)。默认值为False。4/2/20239清华大学出版社2.Data控件常用事件Reposition:当用户单击Data控件两端的或按钮来改变当前记录时,触发该事件。3.数据绑定控件常用属性要使文本框等控件与数据控件绑定在一

9、起,成为数据控件的绑定控件,须设置如下属性:DataSource:该属性用来设置与文本框等控件绑定在一起的数据控件名称。可通过【属性】窗口设置;也可以在运行时通过代码来设置;例:Text1.DataSource=“data1”DataField:该属性返回或设置将当前控件绑定到数据表的字段名称。可在【属性】窗口中选择要显示的字段;也可以在运行时通过代码来设置;例:Text1.DataField=“姓名”4/2/202310清华大学出版社12.3.2 12.3.2 使用使用datadata控件操作数据库控件操作数据库Data数据控件包含一个重要的对象Recorset,代表当前数据库中用户正在使用

10、的数据表内的记录的集合。用户可以用Recordset对象的属性和方法来寻找、排序、增加和删除记录。具体应用在下面的例题中介绍:【例12.2】设计如左图所示的界面,浏览student数据库中的学生基本情况表(jbqk)的信息,学生的照片存放在当前路径下的BMP文件夹下。4/2/202311清华大学出版社12.4 12.4 ADO DataADO Data控件及应用控件及应用Data控件适合小型的数据库,诸如Access和ISAM数据库的开发。随着网络技术和数据库技术的不断发展,这些数据有可能分布在不同的地方,并且使用不同的格式;因此传统的解决方案带来了很多问题,比如数据更新不及时、空间资源的冗余

11、和访问效率低等。为此Microsoft提出一种新的数据库访问策略,即“统一数据访问”(Universal Data Access)的策略。该策略的总体解决方案是OLE DB;但OLE DB只能在C/C+语言中使用,无法在VB中直接使用。为此Microsoft公司对OLE DB进行了封装,这就是ADO(ActiveX Data Objects)。4/2/202312清华大学出版社12.4.1 12.4.1 ADOADO控件及控件及控件及控件及DataGridDataGrid控件介绍控件介绍控件介绍控件介绍 ADO Data 控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于

12、使用的界面,使您可以用最少的代码创建数据库应用程序。DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示数据表的记录和字段。以及自动设置该控件的列标头。然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。4/2/202313清华大学出版社1 1、ADO DataADO Data控件介绍控件介绍Ado Data控件的引用在工具箱中单击右键,选择【部件】菜单项,选择【控件】选项卡中的【Microsoft ADO Data Control 6.0(OLEDB)】复选框,即可将ADO Data控件加入工具箱。Ado Data控件的属性、事件 属性属性描述描述Co

13、nnectionString支持连接字符串的OLEDB提供程序CommandType指示命令类型;一般设定为adCommandTable(表名称)或adCmdText(SQL语句)ConnectionTimeout在中止前等待打开连接的时间量(单位秒)CursorLocation决定是使用服务器端游标还是使用客户端游标RecordSourceRecordset源的类型Mode描述当前被打开的连接中的模式Ado Data控件的常用属性控件的常用属性 4/2/202314清华大学出版社 Ado Data控件的常用事件控件的常用事件 属性描述WillMove当执行改变当前记录指针、删除、添加记录时触

14、发MoveComplete在WillMove事件之后触发WillChangeField在Value属性更改之前触发FieldChangeComplete在WillChangeField事件之后触发WillChangeRecord当执行数据更新时触发RecordChangeComplete在WillChangeRecord事件之后触发RecordsetChangeComplete在WillChangeRecordset事件之后触发4/2/202315清华大学出版社2.2.DataGridDataGrid控件介绍控件介绍控件介绍控件介绍DataGrid控件的引用在工具箱中单击右键,选择【部件】菜单

15、项,然后选择【控件】选项卡中的【Microsoft DataGrid Control 6.0(OLEDB)】复选框,即可将网格控件加入工具箱。DataGrid控件的属性属性描述DataSource指定网格数据的源AllowAddNew允许添加交互记录AllowDelete允许删除交互记录AllowUpdate允许或禁止记录更新HeadLines分配给标头文本的行数4/2/202316清华大学出版社3.3.ADOADO控件、控件、DataGridDataGrid控件应用控件应用建立一个工程,在窗体中加入ADO Data数据控件、DataGrid网格控件,如图12-13所示。4/2/202317清

16、华大学出版社步骤:步骤:步骤:步骤:打开ADO Data控件【属性】窗口,设置ConnectionString属性。选择数据库驱动程序。在这个窗口中显示的是各个数据库厂商为OLE DB提供的驱动程序(Provider)。如果数据库是用Access2000 以前的版本建立的,可以选择【Microsoft Jet 3.51 OLE DB Provider】,如果数据库是用Access2000以后的版本建立的,则要选择【Microsoft Jet 4.0 OLE DB Provider】;单击【下一步】按钮,在弹出的对话框的“选择或输入数据库名称”对应的文本框内输入数据库名称或单击按钮,选择Stud

17、ent.mdb;单击【测试连接】按钮,直到出现“测试连接成功”对话框。单击【Microsoft数据链接】窗口的【确定】按钮,单击【数据链接属性】窗口的【确定】按钮,关闭该窗口。4/2/202318清华大学出版社打开ADO Data控件【属性】窗口,在RecordSource属性栏位单击 按钮,弹出如下图所示的【属性页】对话框,在【命令类型】中选择【2adCmdTable】,在【表或存储过程名称】中选择表【jbqk】。4/2/202319清华大学出版社将网格控件(DataGrid1)的DataSource属性设置为“Adodc1”。设计完成后,运行结果如下图所示。也可以通过编程来完成对DataG

18、rid1的DataSource属性设置,在Form_Load事件中输入语句:SetDataGrid1.DataSource=Adodc14/2/202320清华大学出版社12.4.2 12.4.2 ADOADO控件的控件的RecordSetRecordSet对象对象ADO Data控件链接到数据库的某个数据表后,对数据表的记录的操作,就变为了对RecordSet(数据集)对象的操作。换言之,RecordSet对象存放了数据表中的记录。1.RecordSet对象常用属性属性描述AbsolutePage设置或返回当前数据记录所在的页次AbsolutePositon设置或返回当前数据记录的绝对位置B

19、OF指出记录指针是否移到第一条数据记录之前Bookmark返回当前数据记录的书签值,每一条记录都有自己惟一的书签,它与记录在记录集中的顺序无关EOF指出记录指针是否移到最后一条数据记录之后Sort数据的排序Filter数据的过滤,设置筛选条件,以限制可用的记录4/2/202321清华大学出版社RecordSet对象属性的应用数据的排序(Sort)Recordset对象的Sort属性具有对数据进行排序的能力,如按“学号”字段升序排列:Adodc1.Recordset.Sort=”学号ASC”其中ASC表示升序,DESC表示降序。若要取消上述排序,可使用如下代码:Adodc1.Recordset.

20、Sort=”数据的过滤(Filter)通过Recordset对象的Filter属性可设置筛选条件,以限制可用的记录,例如要显示性别为“男”的所有记录:Adodc1.Recordset.Filter=”性别=男”取消筛选:Adodc1.Recordset.Filter=adFilterNone4/2/202322清华大学出版社2.2.RecordSetRecordSet对象常用方法对象常用方法对记录集的操作很多都要通过RecordSet对象的方法来实现 MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法 当移动记录指针到最后一个记录之后时,EOF属性为Tr

21、ue;当移动记录指针到的首记录之前时,BOF属性为True;为了避免指针移动到记录尾和记录首部时发生错误,可采用下述代码来处理:当向后移动时,如果BOF为True,则将第一个记录成为当前记录:Adodc1.Recordset.MovePreviousIfAdodc1.Recordset.BOF=TrueThenAdodc1.Recordset.MoveFirstEndIf当向前移动时,如果EOF为True,则将最后一个记录成为当前记录:Adodc1.Recordset.MoveNextIfAdodc1.Recordset.EOF=TrueThenAdodc1.Recordset.MoveLas

22、tEndIf4/2/202323清华大学出版社数据的查找(Find)Find方法可以一次找出一条符合条件的记录,并使其成为当前数据记录。通过参数的加入,方法能够依照所给的条件,从指定的起始位置往前或往后搜索数据。例如:在当前记录集中查找学号为034201的记录:Adodc1.Recordset.Find ”学号=034201”Find方法的通用格式:Find criteria,SkipRows,searchDirection,start 各参数的含义:参数描述Criteria包含字段名称、比较运算符及条件值表达式SkipRows指定要略过多少条记录后开始搜索,默认值为0从当前记录开始Searc

23、hDirection指定要往前(adSearchForward)或往后(adSearchBackward)查找Start搜索起始位置的Bookmark(书签)4/2/202324清华大学出版社添加新记录(添加新记录(AddNew)Adodc1.Recordset.AddNew 在数据集的尾部添加新记录保存对记录的修改(保存对记录的修改(Update)Adodc1.Recordset.Update删除当前记录(删除当前记录(Delete)Adodc1.Recordset.Delete4/2/202325清华大学出版社【例12.5】综合应用Ado控件和DataGrid控件完成学生基本情况表(jbq

24、k)的显示、查询、排序和筛选,如下图所示。4/2/202326清华大学出版社12.5 12.5 SQLSQL语言语言语言语言SQL功能命令动词数据查询SELECT数据定义CREATE,DROP数据操纵INSERT,UPDATE,DELETE数据控制GRANT,REVOKE4/2/202327清华大学出版社12.6 12.6 ADOADO对象及应用对象及应用当在一个窗体中同时要对多个数据库(表)访问时,需要放置多个ADO控件,造成控件的繁琐引用,编程缺乏灵活性。而ADO对象模型定义了一个可编程的分层对象集合;可以方便地用同一种方法访问各种数据源。ADO对象是应用层的编程接口,适合于各种客户机/服

25、务器应用系统和基于Web的应用,尤其在一些脚本语言中访问数据库操作是ADO对象的优势。ADO对象可更好地用于网络环境,通过优化技术,它会尽可能地降低网络流量;ADO对象主要由三个对象成员:Connection、Command和Recordset对象组成,另外还有几个集合对象,如Errors、Parameters和Fields等。4/2/202328清华大学出版社12.6.1 12.6.1 ADOADO对象的引用对象的引用单击【工程】菜单的【引用】命令,在弹出的【引用】对话框列表中选取【Microsoft ActiveX Data Object 2.0 Library】选项;(其中2.0为版本号

26、,如果你的系统中有更高版本的ADO对象,则可以选取高版本的ADO对象)4/2/202329清华大学出版社12.6.2 12.6.2 ADOADO对象编程模型简介对象编程模型简介ADO对象模型包括下表所示的一些可编程的对象。每个对象都具有各自的属性和方法。名称说明Connection(连接)通过连接对象可以建立与数据源的连接Command(命令)可以通过该对象提供的方法执行针对数据源的有关操作,比如查询、修改等Recordset(记录集)描述来自数据表或SQL命令执行结果的记录的集合,并对其进行维护或者浏览等操作Errors(错误)用于维护数据源所产生的错误信息Parameters(参数)为执行

27、SQL查询语句或访问存储过程提供参数的对象Field(字段)用于操作记录集中字段的信息4/2/202330清华大学出版社AdoAdo对象模型的简单层次结构对象模型的简单层次结构对象模型的简单层次结构对象模型的简单层次结构4/2/202331清华大学出版社1.连接(Connection)对象Connection对象代表与数据源之间的一个连接,ADO的Connection对象封装了OLEDB的数据源对象和会话对象。Connection对象的常用属性、方法如下:ConnectionString属性:设置到数据源的连接信息,包括OLEDB提供者(Provider)和数据源CursorLocation属

28、性:指定使用客户端游标还是服务器端游标Open方法:用来初始化Connection对象与物理数据源的连接Close方法:关闭Connection对象与物理数据源的连接,并释放与之关联的系统资源,但并没有释放Connection对象本身Execute方法:执行命令,如SQL语句4/2/202332清华大学出版社示例示例1:在窗体的:在窗体的Load事件中建立、打开一个连接。事件中建立、打开一个连接。Connection方法的使用方法方法的使用方法Dim cn As New ADODB.Connection 声明并实例化Connection对象变量cnPrivate Sub Form_Load()

29、cn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;_ Data Source=D:Student.mdb “Provider”:指定OLE DB数据或服务提供者的名称 cn.CursorLocation=adUseClient 指定为客户端游标 cn.Open 打开连接End Sub4/2/202333清华大学出版社Execute方法的使用方法:可以使用Connection对象的Execute方法执行SQL语句完成对数据库的操作,并将查询结果赋值给记录集(Recordset)对象。Dim rs As New ADODB.Recordset

30、 Set rs=cn.Execute(“select*from jbqk”)对象的赋值要用SET语句 Close方法的使用方法:在终止应用程序前,应该先关闭连接:Cn.Close4/2/202334清华大学出版社2.命令(Command)对象Command对象是ADO的基本对象之一,用于完成对数据库的操作。Command对象的优势在于:第一可以保存命令的信息,以便多次查询;第二,如果要进行参数化查询或对存储过程的访问,则必须使用Command对象。Command对象的常用属性、方法如下:ActiveConnection属 性:设 置 当 前 的 Command对 象 所 对 应 的Connec

31、tion对象CommandText属性:描述发送的命令文本,如SQL语句、数据表名称或存储过程名称CommandType属性:设置CommandText的类型;以便于ADO优化命令的执行Execute方法:执行CommandText属性所指定的操作4/2/202335清华大学出版社示例2:使用Command对象执行对数据库的查询,结果在网格控件(Datagrid1)上显示。Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim cmd As New ADODB.CommandPrivate Sub Form_Load()cn

32、.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:student.mdb cn.CursorLocation=adUseClient cn.Open With cmd 对Command对象变量Cmd进行设置 .ActiveConnection=cn .CommandType=adCmdText .CommandText=select*from jbqk End With 4/2/202336清华大学出版社 使用Command对象的Execute方法,执行SQL语句,并将将查询结果填充到记录集对象rs Set rs=

33、cmd.Execute Set DataGrid1.DataSource=rs 用网格控件显示记录集对象rsEnd Sub3.记录集(Recordset)对象Recordset对象是ADO数据操作的核心;在记录集中,总是有一个当前的记录。记录集是ADO管理数据的基本对象,所有的Recordset对象都按照行列方式(表状结构)进行管理,每一行对应一个记录(Record),每一列对应一个域(Field)。Recordset对象的常用属性、方法如下:4/2/202337清华大学出版社属性:属性:ActiveConnection:设置当前的Recordset对象所对应的Connection对象。BOF

34、:指示当前记录位置是否位于Recordset对象的第一个记录之前。EOF:指示当前记录位置位于Recordset对象的最后一个记录之后。CursorType:指示在Recordset对象中使用的游标类型。LockType:指示编辑过程中对记录使用的锁定类型。RecordCount:返回Recordset对象中记录的个数。Sort:数据的排序。Filter:数据的过滤,设置筛选条件,以限制可用的记录。4/2/202338清华大学出版社方法:方法:MoveFirst、MoveLast、MoveNext和MovePrevious:移动Recordset对象中记录指针到首记录、末记录、下一条记录、前一

35、条记录AddNew:向可更新的Recordset添加一条新记录Update:保存对Recordset对象的当前记录所做的所有更改。Delete:删除当前记录Open:打开表示记录的游标,这些记录来自基本表、查询结果或先前保存的Recordset4/2/202339清华大学出版社示例3:使用Recordset对象执行对数据库的查询,结果在网格控件(Datagrid1)上显示。Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetPrivate Sub Form_Load()cn.ConnectionString=Provider=M

36、icrosoft.Jet.OLEDB.4.0;Data Source=d:student.mdb cn.CursorLocation=adUseClient cn.Open 使用Recordset对象的open方法运行SQL语句 rs.Open select*from jbqk,cn,adOpenStatic,adLockOptimistic Set DataGrid1.DataSource=rs 将记录集对象rs捆绑到网格控件End Sub4/2/202342清华大学出版社通过上面三个示例,我们看到,使用ADO对象操纵数据库通常是按下面的步骤完成的:1、使用Connection对象建立与数据

37、源的连接;2、然后可以通过Connection对象的Execute方法、Recordset对象的Open方法或Command对象的Execute方法执行SQL语句来完成对数据库的操作。而Recordset对象作为ADO对象的核心,可以自由灵活使用,所以在下面的例题中我们主要是通过Recordset对象来完成数据库的操作。4/2/202343清华大学出版社【例例12.6】使用使用Ado对象完成对学生基本情况表(对象完成对学生基本情况表(jbqk)的)的显示如图所示。显示如图所示。4/2/202344清华大学出版社【例例12.7】使用使用Ado对象完成按对象完成按“班级班级”查询辅导员的基本查询辅导员的基本情况和班级学生基本情况。如图所示。情况和班级学生基本情况。如图所示。4/2/202345清华大学出版社

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁