第8章VB数据库应用 8.1基本要求 1.掌握关系型数据库的基本概念及Access数据库的建立: 2.掌握Data控件和Access数据库的连接: 3.掌握数据绑定控件和数据控件的连接: 4.掌握ADODC控件的使用: 5.了解VB中使用结构化查询语言SQL的方法。 8.2知识点 1.关系型数据库中一些基本概念 (I)记录(Record):每一行数据为一条记录。 (2)字段(Field):每一列为一个字段。 (3)数据表(Table):由记录的集合组成的二维表格称为数据表。 (4)数据库(Database):多个相互关联的数据表的集合。 (⑤)主键:一个字段或多个字段的组合,唯一地标识了表中的一行。它不允许有空值, 主键是表中所保存的每一条记录的唯一标识。 ()索引:通过索引可以快速访问数据库中的指定信息。在数据库设计器中可以创建三 种类型的索引,分别是唯一索引、主键索引和簇索引。通常在数据库表中如果为表定义了一 个主键将自动地创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键值是唯 一的。 ()关系:一个数据库可以由多张表组成,根据不同情况,表与表之间可以建立不同类 型的关系。表之间的关系有一对一关系,一对多关系和多对多关系。 2.关系数据库模型 关系数据库模型的逻辑结构是一张二维表,和我们在日常生活中使用的表格在直观上是 一致的。一个关系对应于一张二维表。表中的一列称为一个“字段”。表中的一行称为一个 “记录”。每个表都应有一个主关键字,主关键字可以是表的一个字段或字段的组合,且对 表中的每一行都唯一。 3.SQL查询语言 (I)用Select语句可以从数据库中查询符合条件的记录。 语法格式: SELECTFROMWHEREGROUP BY HAVINGORDER BY字段[ASCIDESC] 其中: 字段表部分:包含了查询结果要显示的字段清单,字段之间有逗号分隔。要选择表中所 有字段,可用“*”代替。 FROM子句:用于指定一个或多个表。 WHERE子句:用于限制记录的选择。 GROUP BY和HAVING子句:用于分组和分组过滤处理。它能把在指定字段列表中有 相同值的记录合并成一条记录。 ORDER BY子句:决定了查找出来的记录的排列顺序。 (2)用Insert语句能插入记录。 语法格式: NSERT INTO表名[(列名L,…刀
!"#$ %&' () *+,-+.()' /0 *+1-+2/0' 3!" 4() 5678 9:3;?@ 3 56' BC +2/0D=2/0 76EF+GHI3 +,'JKLMNOPE BCQ3RST *+.() F+HI' # UV WXUVYZ[\]^ _`a'bcdeYZfg hi UVEjkQF+UVlBCUVmUV'Wnb3op-3q+ 2BCrstGfBCUVEBCUVQF+UV uvi'BCUVwxBCPQF + ' $ +2YZ4=y378EzK{|}E3~3YZK{i '3 N++E+===' Q+y9:3E bn 3;bQ + '+2+y9:3'3 +1{P ()6³8+.()' %. «´!µ¶· () ¸1¹º' /5 #±»¼()' #&; /0%!/0! 311 6½3
VALUES(值1,值2,…,值n) WHERE条件 (3)用Update语句能更新记录的字段内容 语法格式: UPDATE表名 SET字段1=表达式1,字段2=表达式2,… WHERE条件 (4)用Delete语句能删除表中的记录。 语法格式: DELETE FROM表名WHERE条件 4.Data控件 Data控件通过一个称为记录集(Recordset)的对象来访问数据库中的数据。一个记录 集是数据库中的一组记录,一个记录集可以来自基本表或SQL命令执行的结果。 访问数据控件Datal的记录集的语法如下: 数据控件对象.Recordset Data控件连接设置: (I)设置Connect属性:指定Data控件所要连接的数据库格式,默认值为Access (2)设置DatabaseName属性:设置Data控件所连接的数据源的名称及位置。例如, 连接到“D)supermarket.mdb”。 (3)设置RecordSource属性:指定数据控件所连接的记录来源,可以来自数据库中的 某张数据表,也可以是查询的结果或者来自一个有返回记录的$QL语句。如,选择数据库 supermarket.mdb中的类别信息表class。 (4)设置RecordsetType属性:指定数据控件存放记录的类型,包含表类型记录集 (Table)、动态集类型记录集(Dynaset)和快照类型记录集(Snapshot),默认值为动态集 类型。 5.Data控件及其记录集的常用方法 (l)Refersh方法:更新Data控件所连接的数据。 (2)UpdateControls方法:从一个Data控件的Recordset对象中取得当前记录,并且在 绑定到某个控件中显示。 (3)UpdateRecord方法:保存被连接的控件的当前值。UpdateRecord方法与执行Edit 方法编辑一个字段并随后执行Update方法产生同样效果,除非无事件发生。 (4)AddNew方法:向可更新的记录集Recordset对象中添加一条新记录。新记录的每 个字段如果有默认值将以默认值表示,如果没有则为空白。 (5)Update方法:调用AddNew方法之后,或现有记录的任何字段值发生更改之后, 调用Update方法可以把更改保存到数据库中。 (6)Delete方法:删除当前记录的内容,在删除后应将当前记录移到下一个记录。 (7)Edt方法:对可更新的当前记录进行编辑修改。 (8)Find方法:用于查找记录,包含FindFirst、FindLast、FindNext和FindPreviou方 法。 (9)Move方法:移动Recordset对象中当前记录的位置,包含MoveFirst、MoveLast、 MoveNext和MovePrevious方法,这四种方法分别是移到第一条记录、移到最后一条记录、 移到下一条记录和移到前一条记录。当在最后一个记录时,如果使用了MoveNext方法时 EOF的值会变为True,如果再使用MoveNext方法就会出错。对于MovePrevious方法如果 前移,结果也是同样
,%P EP E½6P 5 )*%% . ,7 #±¾¿() /0ÀÁ #&; ,- !% 3 %! /0 Â3à E/0 Â3à E½ )*%% . #±ÄÅ3 ()' #&; %%!%( 3 )*%% . WX+2= %&¾¿ R ' ,75 %&+2 ÆÜÝÞß()E³b ÓÔ2 ¡' ,7 %&STà ÞßP',7 %&~É, % %&á+2/0³âãÉ, ,7 %&ä{åæpEÅçèéê' 0? %&ëY¾¿ ()5 Æìí+.¿()'¿() * 2/0opNÎÏPrZÎÏP3¡EopîNï-Oð' ,7 %&ñ 0? %&ãEDòN() óô/0Pê¾õãE ñ ,7 %&YZ²¾õSTÓ' # %&ÄÅÞß() ÀÁEbÄÅãrÞß()öÓÊ+2()' $% %&Y¾¿ Þß()÷,áøõ' 5 %&!µ()E 5l5l50@ 5-A: % &' B(A %&öt ÆÞß() ÑËE (Al(Al (A0@ (A-A: %&Eùúh%&jkQöÓû+.()löÓüã+.()l öÓÊ+.()öÓß+.()'Þbüã+2()ýEop (A0@ %&ý % Pþ- !:Eop (A0@ %&þ¶' (A-A: %&op ßöEpÕQ{å'