VB数据库详解_第1页
VB数据库详解_第2页
VB数据库详解_第3页
VB数据库详解_第4页
VB数据库详解_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、11.1 数据库(DateBase )的根本概念一、概念与术语目前几乎所有的应用程序都需要存放大量的数据,这些大量数据一般都需要经过 数据收集、分析后,整理成一定的组织结构,通过数据库治理系统来进行治理.数据库 治理系统提供了数据在数据库内存放方式的治理水平,使程序设计人员在使用数据库时不需要考虑数据的具体操作及数据之间的关系.数据库是一组排列成易于处理和读取的相关信息的集合.数据库按其模型结构可分为层次数据库、网状数据库和关系数据库.其中关系数据库的理论开展最为完备,因此 到目前为止关系数据库的应用最为广泛.Visual Basic默认的数据库为微软的Access数据库,可在 Visual

2、Basic中利用数据库治理器直接创立,数据库文件的扩展名为.MDB o除此之外, Visual Basic 还可以处理各种外部数据库,如 dBASE、FoxPro、Paradox 、Btrieve 、Microsoft Excel 、 Lotus1-2-3 、Text等格式的数据库,甚至其它非关系的数据库,VB在调用这些数据时,都会自动将其转换为关系型的数据库来操作.1 .数据表(Table)数据表是一组相关联的按行与列排列的逻辑数据的集合,简称为表.在数据库理论 中常用来表示一个实体,每个数据表必须有一个表名,一个数据库一般由多个数据表组 成,各个数据表之间一般应存在某种关系.2 .字段Fi

3、eld 数据表中的每一列称为一个字段.数据表是由其包含的所有字段构成的,每个字段 用来描述它包含的数据.在创立数据表时,必须为每个字段起一个名称一般称为字段名,同时需要为每个字段分配一个数据类型、最大长度和其它属性.3 .记录(Record )数据表中的每一行称为一条记录.记录是字段值的集合,所有用户对数据的访问对 象是记录,因此,如果想对某个数据项进行访问,必须首先进行记录定位,严格的说, 在一个数据表中不允许存在两条完全相同的记录.4 .关键字(Keyword )如果数据表中某个字段值或假设干个字段值的集合能唯一确定一条记录,那么称该字段或字段的集合为该数据表的关键字.在一个数据表中,关键

4、字可能存在多个,但需 选定其中一个作为主关键字.对于数据表中的每条记录来说,主关键字的值必须唯一.5 .索弓I ( Index )为了提升访问数据库的速度,大多数数据库都使用索引.索引即对数据表中的某个 或几个字段的值按某种特定的顺序进行排列.在VB中利用索引可以加快数据检索速度.6 .结构化查询语言( SQL )SQL ( Structure Query Language )是结构化查询语言的缩写,是数据库中通用的数据查询编程语言,它是我们访问数据库的一种利器.在 Visual Basic中访问数据库时,就可以利用 SQL同数据库进行通讯.二、数据库的设计数据库的设计一般需要借助E- R图进

5、行数据建模,然后把整个E-R图中的每个实体和有关的联系,都转化为关系.对每个关系再进行标准化,最后给出各个数据表完成数据库的逻辑设计,对每个关系来说,在选定的数据库治理系统下,创立数据库、数据表以及它们之间的关系,并输入数据进行测试,完成数据库的物理设计.具体内容请读者参考相关的数据库理论方面的书籍.11.2 Visual Basic的可视数据治理器Visual Basic所支持的不同类型的数据库大都可以通过相应的数据库治理系统来建立,如在 MS Access中可以建立.MDB 的数据库.也可以使用Visual Basic 下的数据库治理器来治理数据库.启动数据库治理器有两种方法:(1)在Vi

6、sual Basic 集成环境中,单击“外接程序菜单下的“可视化数据治理器命令,即可翻开可视化数据治理器“ VisData 窗口,如图 11 1所示.(2)直接运行 Visual Basic 系统目录中的 VisData.exe程序文件来启动可视化数据治理器.VisData 窗口由菜单栏、工具栏、工作区窗口与状态栏组成,刚启动时其工作区窗 口为空.图11.2-1可视化数据治理器窗口、可视数据治理器的使用使用开可视化数据治理器建立默认数据库一一Access数据库的步骤如下:1 .单击“文件菜单下的“新建菜单项,将出现如图12-2所示的选择.单击数据库类型菜单中的Access将出现版本子菜单,在版

7、本菜单中选择要创立的数据库版本后,出现如图113所示的窗口.图11.2 - 2 “文件菜单下的“新建子菜单图11.2 - 3创立数据库窗口2.单击“保存按钮后,将会出现如图11.2 - 4所示的窗口.京件中 M用程殍4. 峙的也1Kjfl.冷曲图11,2 - 4数据库窗口与 SQL语句窗口3 .右击数据库窗口,出现如图 1.2 5所示的窗口图11 5数据库窗口4 .单击“新建表按钮,即可翻开如图11.26康畸施类型:|L国空侬所示 窗口 即可 新建 表.索引列费如:税味引工) 珊除索引中.看加字笈删窿字葭堪破喧百:S 和:I1r至里r北4r处工目厂小塞凶厂二.星空僖字段: 感谢下载载关闭

8、63;)图11,2 - 6表结构窗口5.然后单击“添加字段按钮,可建立各个字段的属性,最后单击“新建表按钮, 即可建立起表结构.有了表结构后就可对表进行数据的添加、修改和删除等操作.11.3 ADO 数据控件、编写一个简单数据库程序首先介绍 Visual Basic 所提供的两个控件ADO Data Control 简称ADODC和DataGrid处理数据库程序的方法.ADO Data Control 和DataGrid者B属于ActiveX控件,它们在使用前需要先将其添加到工具箱中,以便在工程中使用.单击“工程 /部件菜单项,翻开“部件对 话框,选定所需要的控件并确定,即可将其添加的工具箱中

9、,如图11.3 -1所示.图11.31添力口 ADODC 与DataGrid 控件到工具箱在窗体上添加 ADODC 与DataGrid 控件,如图118所示,然后右击 ADODC 控件,选择其快捷菜单下“ ADODC属性那么翻开如图 119所示的界面.图11.3 2窗体窗口图11.3 3属性页窗口在上图中,单击生成“按钮,那么翻开如图11.3 -4所示的数据链接属性窗口vi <1 上11 力 Pa- 0b. d «>- Pl= - -Vi d«ir第虻nid*小口城!i d.i*F 雄1«154膻Ktt|UhN«di «r 

10、1;i.HTJE OB FroM-.b ,! -J . H .,lUJ! "I?.M.11nci db独j w比力耳心里1 mH 1 j UJJ5 iwM l &r 曰 h Z 比 M it cr o sot t M i ar «-j soft M i tzi o auEt M b <tf ft m r q M * i=X- fi BC f t M K上量M iit n C干M x «- q 工 0 E *.M 1 ei Q 1口UL口 Ln U 力 r- t .J|后口口 B11 atlrlDu&加ri,D门O DTJT rrovl rro

11、¥-i ST it 口W i Fm Frcvi. r* *ri f*1-Fhuvi 3 i"ip 1UB dl«rU工 d«-r WK ,L*上 4-iVPFrj isvi(1For Li«i_4 Mi nine: 5«rvi for Znri«x i he S*rvi c* 工口 t"工上iL-jrbl F ubX 1 Ah.1 EiE 3?nr 11NIC Pri vari fox- CL-MK -ar-vii a« > O 工廿上 U上f Ua * l-l I b t I c< k 胃,

12、 -i Eh 壬HX- EQL- W.E-WE-"F>>图11.3 4数据链接属性窗口在图11.3 -4中选中“ Microsoft Jet 3.51 OLE DB Provider ,单击下一步按钮,进入如图11.3 5所示的数据链接属性窗口.【注】Microsoft Jet 3.51 OLE DB Provider只能翻开 Access97 下的数据库,不能打开Access2000 及以上版本的数据库,如要翻开Access2000 下的数据库,那么必须选用Jet 4.0 ,否那么系统会出错.图11.3 5数据链接属性窗口在图11.3 -5中,单击“按钮,选择所要翻开的

13、数据库文件后确定,即可单击“测试连接按钮,测试是否连接成功.如果测试连接成功,那么单击“确定按钮后,返回图11.3 -2【注】如果数据库文件与工程文件保存在同一个文件夹下,那么可把上图所示的文件xjgl.mdb前的字符删除,这样生成的程序,在复制到其它计算机上后不需重新对数据库进行连接即可运行.通过以上步骤,我们只是完成了 ADODC控件的Connectionstring属性设置,其值如下:Provider=Microsoft.Jet.OLEDB.3.51;Data Source=e:xjglxjgl.mdb;Persist Security Info=False该属性由三个参数组成:参数参数

14、值意义IProviderMicrosoftyjet.OLEDE.3.51OLE DE驱动程序Persist Security InfoFALSE是否保存密码Data Sourcee:xiRlxiKl.mdb数据源然后把 ADODC 控件的CommandType 属性设置为 adCmdTable ,接着单击RecordSource 属性,可以看到数据库xjgl.mdb 下的所有数据表,单击"根本情况表".再选定DataGrid 控件,只需把DataSource 设置为ADODC控件即可,完成程序设计.运行该程序即可对数据库 xjgl.mdb 下的“根本情况表进行浏览.然后把

15、DataGrid 控件的AllowAddNew属性设置为 True、AllowDelete 属性设置 为True、AllowUpdate 属性设置为True ,再次运行该程序,即可对“根本情况表进行添加、删除与修改数据操作,到目前为止没有书写一行代码,就已完成程序设计.二、数据库文件与 ADODC、DataGrid 的关系1 . ADODC与数据库文件的关系数据库文件是一种格式十分复杂的文件,对任何一个程序员来说,如果想自行解析文件格式进而存取数据库中的内容, 都是一件十分困难的事情. 因此VB提供了 ADODC控件,其功能是 进行数据库文件结构分析, 并且根据程序将来可能操作数据库 如:读取

16、、写入、新增、删除等, 建立必要的操作接口包含属性、方法和事件,然后封装成为一个控件.对数据库程序而言,如果通过ADODC控件来存取数据,那么不必了解数据库文件格式,只要通过ADODC所提供的操作接口,即可到达存取数据库的目的.数据库程序、ADODC控件与数据库文件三者之间的关系用下列图表示:ADODC图11.36数据库文件与 ADODC控件的关系2 . DataGrid 与ADODC之间的关系虽然ADODC控件具有存取数据库数据的水平,但却没有提供显示数据的功能,如果想要显示数据库的内容,除了利用ADODC来读取数据之外,还得编写显示数据的程序.1利用DataGrid来显示数据要使用Data

17、Grid 来显示数据库内容必须设置好它的DataSource 属性,这个属性的作用是让DataGrid 控件与ADODC控件产生连接关系,也就是告诉 DataGrid控件它所存取的是哪 一个ADODC所翻开的数据库,接着DataGrid就会自动使用 ADODC的接口,将数据库的内容显示出来.其关系如图11.37:DataGnd件方法数据库 文件ZZE事件数据库程序图11.3 -7 DataGrid 与ADODC 控件的关系2关键属性和参数总结ADODC控件的属性及参数:1ConnectionString连接字符串属性:该属性有两个重要参数Provider 和Data SourceProvide

18、r参数:Provider是OLE DB Provider的简称,其主要用途在于指定存取数据库所使用的 OLE DB 驱动程序.如 “ Microsoft Jet 3.51 OLE DB Provider .Data Source 数据源参数:此参数通常用来指定数据库文件的完整路径和文件名.有了此参数,ADODC控件才能翻开指定的数据库文件.2CommandType 命令类型属性:共有四个值:adCmdTable 数据表、adCmdText 指令、adCmdStoredProc存储过程、 adCmdUnknown未定义.3RocordSoure 记录源属性:指定确定的表.DataGrid 控件的

19、属性:1DataSource数据源属性:由于 DataGrid 控件并不直接存取数据库中的数据,因此必须将其属性设置成某一个ADODC控件,DataGrid控件才能具备存取数据库的水平.AllowAddNew允许新增属性:假设允许用户新增数据,须将此属性设置为True.3AllowDelete 允许删除属性:假设允许用户新增数据,须将此属性设置为True.(4)AllowUpdate( 允许更新)属性:此属性的默认值为True.三、Visual Basic 中与数据库中相关的对象就像数据库是有组织结构的一样,VB所提供的数据库对象也是有组织的,而且与数据库的组织结构有着很好的对应关系.1 .F

20、ield对象与字段字段是数据库中最小的数据单位.在VB所提供的对象中,与字段对应的对象是Field ,我们从Field对象的以下属性可以得知字段的相关信息:Name属性:字段的名称Value属性:字段的数据Name属性Field对象学号姓名年龄1001张三18Value属性2 .Fields集合对象与数据记录对VB所提供的对象而言,Field对象的集合构成 Fields集合对象,所以Fields集合对象可 以视为与数据库记录对应的对象.Fields对象编号:012Fields(0) Fields(1) Fields(2)共同构成Fields集合对象由于Fields是一个集合对象,所以可以利用

21、Count属性得知某一个Fields集合对象中的Field对象的数目,并可利用下面的方法显示集合中的Field对象的内容,如:For i=0 to fds.Count-1' fds 为一个 Fields 集合对象Debug.Print fds(i).Name'显示字段名称Debug.Print fds(i).Value'显示字段数据内容Next3 .Recordset 对象与数据记录集合Visual Basic中与数据表对应的对象称为 Recordset对象,先介绍"当前数据记录的概 o1由于数据库无法将整个数据表完全装入到内存中,因此便规定程序每次只能存取一

22、条记录,此记录数据就称为“当前记录数据.注:虽然程序每次只能存取当前记录数据,但并不表示数据库每次只装入一条记录数据,为了提升执行效率,数据库每次会装入一大段记录数据,但程序存取的动作还是以一条为单位.2利用Recordset对象改变当前记录数据的方法程序运行后当前记录数据,将定位于第一条记录.假设要改变当前记录,程序必须调用Recoedset对象的方法改变当前数据记录,方可存取每一条数据记录,进而到达存取整个数据表的功能.下表为 Recoedset对象的几个常用方法.方法说明MoveNext将当前数据记录移到下一条MovePrevious将当前数据记录移到上一条MoveFirst将当前数据记

23、录移到第一条MoveLast将当前数据记录移到A条EOF当前数据记录是否在最后-条之后BOF当前数据记录是否在第一条之前如图11.3 8为Visual Basic 中几个对象间的关系11.3 -8 ADODC、Recordset、Fields、Field 几个对象关系图在上图中位于下方的称为上方对象的子对象.假设要存取某一个对象,必须从最上层的父对象向下指定对象的路径.如:AdodcI.RecordsetAdodcI.Recordset.FieldsAdodcl.Recordset.Fields(i)11.4 Recordset 对象Recordset 对Recordset 对象是数据记录的集

24、合,而数据记录又是字段的集合,因此利用Recordset 对象是存取象,在程序中就可以存取所有数据记录的每一个字段的数据了,所以说数据库数据最重要的源头.在数据库的程序设计中,Recordset对象是最为重要的对象.一、Recordset 与数据表的存取前面介绍几个改变 Recordset 对象的当前数据记录的方法MoveNext 、MovePrevious 、MoveFirst、MoveLast方法,通过这几个方法就可以存取整个数据表的数据.其关系可用图1115来表不'.MoveFirstMovePreviousMoveNextMoveLastIIIRecordset 对象数据表当前

25、记录以 Recordset.Fields 来存取图11.4 1 Recordset对象与数据表之间的关系如程序:for I=0 to Adodc1.Recordset.Fields.Count-1Debug.Print Adodc1.Recordset.Fields(i).ValueNext1.防止没有当前数据记录的错误利用MovePrevious 、MoveNext 移到记录指针时,应注意移过头现象发生.所谓移过头 是指:指针位于第一天记录时,调用MovePrevious 方法.指针位于最后一条记录时,调用Monenext 方法.我们可以利用 Recordset对象的EOF或BOF属性,来加

26、以判断.BOF及EOB属性的应用:AdodcI.Recordset.MoveFirstWhile Not Adodc1.Recordset.Eofs=For I=0 to Adodc1.Recordset.Fields.Count-1s=s & Adodc1.Recordset.Fields(i).Value & vbTabNextList1.Additem sAdodc1.Recordset.MoveNextWendAdodcI.Recordset.MoveNextWhile Not Adodc1.Recordset.Bofs=For I=0 to Adodc1.Record

27、set.Fields.Count-1s=s & Adodc1.Recordset.Fields(i).Value & vbTabNextList1.Additem sAdodc1.Recordset.MovePreviousWend2.存取字段数据的几种各数1)Adodc1.Recordset.Fields(i).Value如:Adodc1.Recordset.Fields(0).Value2)Adodc1.Recordset.Fields( 字段名称).Value 如:Adodc1.Recordset.Fields( “学号).Value3.省略.Value的语句如:Adod

28、c1.Recordset.Fields("股票代号")4.省略.Fields的语句如:Adodc1.Recordset("股票代号")5.Recordset !字段名称 字段名称不能加引号【注】Recordset"字段名称最容易书写.二、Recordset与数据记录的增删修改在前面我们使用 DataGrid 控件的AllowAdd 属性和AllowDelete 属性设置为 True ,使它 具有修改、增加和删除数据的功能.但大批数据的处理使用该方法不方便,下面介绍Recordset对象修改、增加和删除数据的方法.1 .删除数据记录首先要将欲删除

29、的记录置为当前记录,然后调用Recordset.Delete方法进行删除.如:Adodc1.Recordset.MoveLastAdodc1.Recordset.Delete删除多条记录时,在Delete方法后加上 DoEvents 语句.2 .修改数据记录修改数据记录分两步走,先把数据写到缓冲区,然后再写入数据库.数据写入可调用 Recordset.Update方法和使用 Move方法.其具体过程如下:方法一:Adodc1.Recordset"字段名称1"=字段新值Adodc1,Recordset"字段名称 2"=字段新值AdodcI.Recordse

30、t.Update方法二:Adodc1.Recordset"字段名称1"=字段新值Adodc1.Recordset"字段名称 2"=字段新值Adodc1.Recordset.MoveNextCancelUpdate 方法:取消更新的数据除了调用Update方法或改变当前数据记录的位置来使要更新的数据立即写入到数据库中 之外,Recordset对象也允许在修改数据记录之后,数据尚未写入数据库之前,将更新的数据 撤消,让表中的数据恢复原状,此时调用的方法是CancelUpdate 方法.3 .新增数据记录新增数据记录是先建立一个缓冲区,并将此缓冲区设置为当前记

31、录,然后就可以像修改记录的数据一样,修改当前记录的内容.最后,如果确定要新增该条记录数据,就调用Update方法或移动当前数据记录将数据写入到数据库中;如果要取消新增的记录数据的操作,就调用 CancelUpdate 方法,其新增记录数据的语句大致如下:AdodcI.Recordset.AddNewAdodc1,Recordser "字段名称1"="新的字段值1"Adodc1.Recordser "字段名称2"="新的字段值 2" Adodc1.Recordset.Update 或 Adodc1.Recordset

32、.CancelUpdate 三、Recordset 与数据记录的检索1 .检索数据记录的方法1Find方法格式:Recordset.Find Criteria,SkipRows,SearchDirection,Start参数1 : Criteria :检索记录数据的表达式.如:"语文 >85 ".该参数的变化相当多,稍 后进一步说明.参数2: SkipRows :跳过几条记录开始检索.可省略,假设省略其默认值为0,表示从第条记录开始.参数 3 : SearchDirection :检索的方向.可以是 adSearchForward 或 adSearchBackward

33、 可以省略,假设省略表示向下检索.参数4: Start :开始检索的位置.可省略,假设省略表示从当前数据记录开始检索.2检索结果与当前记录如果调用Find方法后找到符合要求的记录数据,那么当前记录将移至被找到的记录,否那么当前记录数据变成不存在.可利用Recordset对象的BOF、EOF属性进行判断.2 .检索数据记录的表达式在Find方法的参数中,变化最多的是Criteria参数,在此作进一步的讨论1表达式的根本格式“字段名称比拟运算符比拟的数据2表达式的字段名称表达式=字段名称比拟符号比拟的数据1表达式中的“字段名称必须是数据表中已存在的字段名称如果字段名称中含有空格字符,那么字段名称前

34、后必须加3表达式之“比拟的数据表达式=字段名称比拟符号比拟的数据比拟的数据是常量比拟的数据 按数据类型可分为“数值、“日期时间和“字符串三种类型.数据类型表达式数值“语文>85 字符串“姓名=,张三,日期数据“出生日期 >#1975/7/1#"2比拟的数据是变量设v为数值:"字段名称比拟符号 " & vv为日期数据:“字段名称比拟符号#" & v &“#v为字符串:"字段名称比拟符号& v4表达式之“比拟符号表达式=字段名称 比拟符号比拟的数据VB程序中的比拟符号包含 =、=、=均可用于记录数据的比拟

35、.此外, Like 比符号也可用于比拟表达式中.其格式:字段名称Like比拟的字符串该表达式用于字符串数据的“近似"Like比拟,其中“比拟的字符串 局部可以包含“%、""或“ _"下划线通配符.如:“姓名 Like '张' 11.5 Data-Aware数据识别控件前面介绍了两种存取数据的方法:使用Recordset对象和DataGrid 控件.经过比拟容易发现DataGrid 控件比Recordset 对象简便得多.像DataGrid 控件一样具有自动显示和更新数据功能的控件,称为 Data-Aware数据识别 控件简称数据识别控件.

36、在Visual Basic中,除了 DataGrid 控件外,数据识另J还有 Label、 TextBox、CheckBox、ListBox、ComboBox、Image、PictureBox、MonthView 、DTPicker、 DataList、DataCombo等控件.如能充分运用,就可在数据库程序的设计中游刃有余了.一、数据识别控件的根本概念数据识别控件分为两类:表格式和单栏式.表格式指DataGrid 控件.单栏式是指每次只能存取当前数据记录的某个字段的数据.单栏式控件必须设置两个属性: DataSource属性设置为ADODC控件的名称和DataField数据字段属性设置为某一

37、个字段名.二、数据识别控件的选择数据识别控件适应的数据字段Label只读的文本字段TextBox一般性文字字段,包含文本.数值CheckBoxBoolean字段,如“是否、“真假等ComboBox 、ListBox列表式的字段Image、PictureBox图片字段DTPicker、MonthView日期类型字段三、举例DTPicker控件的使用单击“工程/部件翻开部件对话框,选定 Microsoft ADO Data Control6.0(OLEDB) 和Microsoft Windows Common Controls-2 6.0,把 ADODC 和 DTPicker 控件添加到工具箱,布

38、置窗体如图1111所示,把ADODC控件连接到xjgl.mdb 下的“根本情况表,把Text1-Text5 依次学号、姓名、性别、成分和籍贯字段进行绑定,DTPicker控件与出生日期字段进行绑定,运行该程序并单击DTPicker控件即出现图1116界面,即可对出生日期字段的值进行修改.图11.5 1 DTPicker 控件的使用11.6 结构化查询语言(SQL)SQL简介1 . SQL概念SQL(Structured Query Language ,结构化查询语言)是要求数据库操作其数据的语句,它 是专门为数据库设计出来的语言,比一般的程序语言简单.SQL语言主要分成两局部:DDL(Data

39、Definition) 和DML(Data Manipulation Language) .其中DDL是建立数据表和字段的语句集, 而DML那么是操作记录数据的语句集.2 . SQL根本格式Select - From Select学号,姓名,籍贯 From 根本情况3 .利用 VB下达Select语句CommandType 属性:1-adCmdTextRecordSource( 记录源)属性:Select学号,姓名,籍贯 From 根本情况表使用SQL显示xjgl.mdb 下"根本情况表的步骤:1) 添加 Microsoft ADO Data Control6.0(OLEDB) 和

40、Microsoft DataGrid Control6.0 (OLEDB)到窗体,将 ADODC 连接到数据库 xjgl.mdb .2)设置ADODC 控件的RecordSource 属性,如图11.61所示.单击确定按钮.3)将DataGrid 控件的DataSource 属性设置为 ADODC 控件.运行程序,即可得到如图11.6 -2所示的结果.图11.6 1 SQL的使用图11.62 SQL运行结果、Select语法简介1.根本语法一:Select字段列表 From数据表1字段列表的变化一如果字段列表涵盖数据表中的所有字段,那么可用“*代表.如:select * from根本情况(2)

41、as语法字段列表还可以是别名.如:字段名 1 as别名1 ,字段名2 as别名22字段列表的变化二除了字段名可以成为 Select语句的字段列表外,用字段名称组合出的表达式,也可成为字段列表成员.如:select学号,姓名,语文,英语,数学,语文+英i+ +数学as总分from 成绩3字段列表的变化三在Select中只要是符合 VB规那么的表达式都可以用来定义新字段.如:select right 学号,2 as编号,姓名,数学 from 成绩2 .根本语法二: select -fromwhere 筛选表达式如果只想筛选出局部数据,就可增加Where表达式1筛选表达式的变化筛选表达式中可使用=、

42、=、=等运算符,也可使用and、or、not逻辑运算符和Like近似比拟运算符.(1)字符串的近似(Like)选取select * from 成绩 where 姓名 like '王'(2)%与_的区别2)其它的where筛选表达式除使用以上运算符外,还可使用以下一些运算符:(1)where字段名称 between 值 1 and 值 2where 字段名称 not between 值 1 and 值 2(2)where字段名称in(值1 ,值2,)集合运算(3)where字段名称 is Null 与 where 字段名称 is not Null如果某一笔记录的某一字段并未输入任

43、何数据,那么该字段就为Null字段.上面的筛选表达式可以挑出某一字段为Null或非Null的记录数据.3)VB函数的使用其实VB函数也可用于 where筛选表达式,如:select * from 成绩单 where mid( 姓名,2, 1)='小'3 .根本语法三:select from order by字段列表1单字段排序Order By子句主要对最终输出结果进行排序,这有助于数据的浏览与查阅.如:Select * from 成绩 order by 语文2多字段排序如:Select * from 成绩 order by 语文,英语,数学3排序方式asc 默认升序 deac降

44、序4select top:限定选取数据记录的条数如:select * from 成绩 order by语文+英语+数学 descselect top 10 * from 成绩 order by语文+英语+数学 desc'取前十条select top 10 percent * from 成绩 order by 语文 + 英语 + 数学 'desc 取百分比三、动态执行Select语句的技巧前面已经介绍利用 Recordset 对象的Find方法进行数据的查找.对SQL而言,"where 筛选表达式中的“筛选表达式",与 Find方法的“搜寻数据的表达式在功能上

45、十分类似.但Find方法对数据进行逐条比拟,数据量较大时,效率很低.因此,可先用SQL语句筛选符号条件的记录,然后再进行Find方法查找.1 .动态执行Select语句的技巧要想动态执行某一Select语句,程序必须如下:Adodc1.CommandType=adCmdTextAdodc1.RecordSource=Select 语句Adodc1.Refresh2 .动态组合SQL语句的考前须知字符型数据:select * from数据表 where 字段名称='"& Text1.Text &"日期型数据:select * from数据表where字

46、段名称="& Text1.Text &""数值型数据:select * from数据表where字段名称="& Text1.Text3 . Where筛选表达式与 Find表达式的差异1 .Where筛选表达式可使用逻辑运算符and、or、not , Find表达式不能使用逻辑运算符.2 .Where 筛选表达式中的 Between - And 和Is Null/Is Not Null均无法在 Find中使用.3 .Where筛选表达式中可以使用 VB函数,而Find表达式中是不能使用的.11.7 ADO (Active Data

47、 Objects )对象模型我们前面一直使用 ADODC和其它数据识别控件来设计数据库程序.为了打好数据库根底,Visual Basic 数据库最核心'的对象群 -Active Data Objects (简称ADO )就是我们必须要掌 握的,如图 11 19.图 11.7-1 ADO 对象结构图、ADO的首次使用比照图11.38中可以看出 ADO比 ADODC控件复杂一点,实际上它们的概念是一致的在ADO对象结构图中可以发现一个熟悉的名字一Recordset ,它与我们前面使用的Recordset(ADODC 的属性)是相同的对象.先看一个ADO翻开数据库的例子:Dim conn A

48、s New ADODB.ConnectionDim rs As New ADODB.RecordsetPrivate Sub Form_Load()Dim ConnStr As StringConnStr = "Provider=Microsoft.Jet.OLEDB.3.51;" & _"Data Source=f:凶glxjgl.mdb"conn.Open ConnStrrs.CursorLocation = adUseClientrs.Open " 根本情况表 ", conn, adOpenKeyset, adLockP

49、essimisticEnd SubPrivate Sub Command1_Click()' 显示 Recordset的所有记录数据Dim S As String, i As Integerrs.MoveFirstListl.ClearWhile Not rs.EOFS=""For i = 0 To rs.Fields.Count - 1S=S & rs.Fields(i).Value & vbTabNextList1.AddItem Srs.MoveNextWendEnd Sub在以上程序中,使用了 MoveFirst、EOF、MoveNext 方

50、法和Fields子对象,使用这些方法和Fields子对象的对象不再是Adodc1.Recordset 对象,而是rs对象.1 .翻开数据库表我们再看一下上面翻开数据库的语句:ConnStr = "Provider=Microsoft.Jet.OLEDB,3.51;" & _"Data Source=e:凶glxjgl.mdb"conn.Open ConnStrrs.CursorLocation = adUseClientrs.Open "根本情况表",conn,adOpenKeyset,adLockPessimistic其主要

51、由三局部组成:Provider参数:用来指定 OLE DB驱动程序.DataSource 参数:用来指定数据库的来源,它与 Provider参数合起来构成"连接字符串.股票行情表:出现在 rs.Open方法的参数,用来指定想要翻开的数据表.结论:通过比拟我们发现前面两个例子翻开数据库的方法几乎是一样的,ADODC控件仍调用ADO所提供的方法来翻开数据库表.2 .使用ADO对象之前在使用ADO对象之前,必须先利用 VB菜单的“工程/引用来引用“Microsoft Active Data Objects 2.0 Library ,如图 1120 所示,然后 ADO 对象群中 Connec

52、tion 、Recordset、 Command 、Fields等对象才会成为可以引用的对象.否那么,类似下面的语句:dim conn as new ADODB.Connectiondim rs as New ADODB.Recordset都会产生“用户定义类型未定义的错误,由于“ Connection 和“ Recordset 者B是定 义在"Microsoft Active Data Objects 2.0 Library中的.如果没有事先将其引用的话,VB将无法辨识它们.图 11.72 Microsoft Active Data Objects 2.0 Library的引用3

53、.使用ADO的根本概念从以上例子中我们可以看到,使用ADODC比使用ADO要简单得多,但使用ADO比使用ADODC专业的多.“对象类别的引用及表示法:语句格式:dim rs as ADODB.Recordset其中,rs称为“对象变量,Recordset称为“对象类别名称",ADODB那么称为“对象类别模块,整个语句被解释为“建立一个Recordset类别的对象变量、而 Recordset对象类型是来自ADODB对象类别模块的.注意:ADODB 正是"Microsoft Active Data Objects 2.0 Library在程序设计中的简称.二、Connectio

54、n 对象:操作数据库的源头ADO对象群以 Connection 对象为源头,通过 Connection对象才可以翻开其下面的Recordset 及Command 对象,进而对数据库进行操作.1. Connection 对象的建立及翻开1)Connection对象的建立要使用某一对象时,必须经过“定义和“建立两个步骤.即:Dim conn as ADODB.Connection'定义一个 Connection类别的对象变量Set conn=New ADODB.Connection'建立对象,并指定给conn 对象变量也可合二为一:Dim conn as New ADODB.Con

55、nection2)Connection对象的翻开以上语句只是建立了Connection 对象,还无法使用.要想使用 Connection 对象,就必须指定OLE DB Provider 和Data Source 两个参数,然后再调用Open 方法.如:Connstr= "Provider=Microsoft.Jet.OLEDB3.51; " & "Data Source=f:凶glxjgl.mdbConn.Open Connstr2. 数据表的翻开与Connection 对象翻开数据表可用以下语句Dim conn as New ADODB.ConnectionConn

温馨提示

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

最新文档

评论

0/150

提交评论