资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
VBVB及其应用及其应用第13章 数据库操作本章要点本章要点: : ADOADO控件控件数据绑定控件数据绑定控件ADOADO对象对象第第1313章章 数据库操作数据库操作数据库功能数据库功能: : 数据的组织;数据的管理数据的组织;数据的管理 数据的组织数据的组织: : 数据库数据库(Data Base:DB)(Data Base:DB)以一定方式组织并存储以一定方式组织并存储 在一起的相互有关的数据的集合。按组织方式的在一起的相互有关的数据的集合。按组织方式的 不同,分为三种模型,即不同,分为三种模型,即: : 关系数据库关系数据库; ;层次数层次数 据库据库; ;网状数据库网状数据库。数据的管理数据的管理: : 数据库管理系统数据库管理系统(DBMS)(DBMS)用户与数据库之间的接用户与数据库之间的接 口,提供对数据库使用和加工的操作,如对数据口,提供对数据库使用和加工的操作,如对数据 库的建立、修改、检索、计算、统计、删除等。库的建立、修改、检索、计算、统计、删除等。 VB VB可以处理多种数据库可以处理多种数据库: : 如如AccessAccess、FoxProFoxPro、DataBaseDataBase、ExcelExcel、ParadoxParadox等格式的数据库。等格式的数据库。数据库基本概念数据库基本概念 第第1313章章 数据库操作数据库操作一、关系数据库的有关概念一、关系数据库的有关概念数据库基本概念数据库基本概念 第第1313章章 数据库操作数据库操作1 1关系(关系(表表) 在关系数据库中,数据以关系的形式出现,可以把关系理解成一张二维在关系数据库中,数据以关系的形式出现,可以把关系理解成一张二维表(表(TableTable)。)。2 2关系数据库关系数据库 将数据存储在一些二维表中,然后将数据存储在一些二维表中,然后 通过建立各表之间的关系来定义数通过建立各表之间的关系来定义数据库的结构。一个数据库通常包含多个数据表。据库的结构。一个数据库通常包含多个数据表。例:例:“学生学生.mdb”.mdb”数据库数据库(1) “(1) “学生基本信息学生基本信息” ” 表表 数据库基本概念数据库基本概念 学号学号姓名姓名性别性别班级班级 出生日期出生日期专业编号专业编号 980010101980010101张涛张涛男男 建建98-01 98-01 80-03-2480-03-24001 001 980010102980010102李明李明 男男 建建98-01 98-01 80-12-09 80-12-09 001 001 990030101 990030101 王容王容 女女网网99-01 99-01 80-12-09 80-12-09 005005第第1313章章 数据库操作数据库操作 (2)“ (2)“专业专业” ” 表表 (3)“ (3)“系系” ” 表表以上三个表构成一个数据库。以上三个表构成一个数据库。“学生基本信息学生基本信息”表与表与“专业专业”表通过表通过“专业编号专业编号”建立关系。建立关系。“专业专业”表与表与“系系”表通过表通过“系编号系编号”建立关系。建立关系。3 3记录记录(行)(行) 每张二维表均由若干行和列构成,其中每一行称为一条记录(每张二维表均由若干行和列构成,其中每一行称为一条记录(RecordRecord)4 4字段字段(列)(列) 二维表中的每一列称为一个字段(二维表中的每一列称为一个字段(FieldField),每一列均有一个名字,称),每一列均有一个名字,称为字段名,各字段名互不相同。为字段名,各字段名互不相同。数据库基本概念数据库基本概念 专业编号专业编号 专业名称专业名称 系编号系编号 001001建筑结构建筑结构 001 001 002002道桥工程道桥工程 001 001 006 006 给排水给排水 003 003 系编号系编号 系名系名 001 001 自动化自动化 002 002 建筑建筑 003 003 计算机计算机 第第1313章章 数据库操作数据库操作数据库基本概念数据库基本概念 表名表名字段名字段名字段类型字段类型字段长度字段长度学生基本信息学生基本信息学号学号TextText9 9姓名姓名TextText1010性别性别 TextText2 2班级班级 TextText7 7出生日期出生日期 DateDate8 8专业编号专业编号 TextText3 3专业专业专业编号专业编号TextText3 3专业名称专业名称TextText2020系编号系编号TextText3 3系系系编号系编号TextText3 3系名称系名称TextText2020例:上面的数据库中表的结构例:上面的数据库中表的结构第第1313章章 数据库操作数据库操作5 5主键主键 关系数据库中的某个字段或某些字段的组合定义为主键(关系数据库中的某个字段或某些字段的组合定义为主键(Primary Primary KeyKey)。每条记录的主键值都是唯一的,这就保证了可以通过主键唯一)。每条记录的主键值都是唯一的,这就保证了可以通过主键唯一标识一条记录。标识一条记录。6 6索引索引 为了提高数据库的访问效率,表中的记录应该按照一定顺序排列,通常为了提高数据库的访问效率,表中的记录应该按照一定顺序排列,通常建立一个较小的表建立一个较小的表索引表,该表中只含有索引字段和记录号。通过索引表,该表中只含有索引字段和记录号。通过索引表可以快速确定要访问记录的位置。索引表可以快速确定要访问记录的位置。 7. 7. 表间的关联表间的关联 按照某一个公共字段建立的一个表中记录同另一个表中记录之间的关系。按照某一个公共字段建立的一个表中记录同另一个表中记录之间的关系。有一对一、一对多有一对一、一对多( (或多对一或多对一) )、多对多关系。、多对多关系。二、二、VBVB数据库访问技术的发展数据库访问技术的发展1 1、客户、客户/ /服务器的概念服务器的概念 使用客户使用客户/ /服务器是当今数据库开发的主流。客户服务器是当今数据库开发的主流。客户/ /服务器模式是从模块服务器模式是从模块化程序设计的基础上发展过来的,它允许模块可以不在同一个存储空间中化程序设计的基础上发展过来的,它允许模块可以不在同一个存储空间中运行。在该体系结构中,调用模块就成为客户(运行。在该体系结构中,调用模块就成为客户(ClientClient)的一个请求,而)的一个请求,而被调用的模块就为服务器(被调用的模块就为服务器(ServerServer)提供请求。)提供请求。数据库基本概念数据库基本概念 第第1313章章 数据库操作数据库操作 客户客户/ /服务器的逻辑扩展是让客户程序和服务器程序各自运行于相应的服务器的逻辑扩展是让客户程序和服务器程序各自运行于相应的软件平台上,它们各负其责相互协调地为一个应用程序服务。实际应用中软件平台上,它们各负其责相互协调地为一个应用程序服务。实际应用中,把数据库的前端放在客户机上,后端的数据库管理系统放在服务器上。,把数据库的前端放在客户机上,后端的数据库管理系统放在服务器上。2 2、数据访问对象模型、数据访问对象模型 在在VBVB中,要对数据库进行访问,需要通过数据访问对象进行,数据访问中,要对数据库进行访问,需要通过数据访问对象进行,数据访问对象包括对象包括: : DAO: Data Access Object DAO: Data Access Object 数据访问对象数据访问对象 RDO: Remote Data Object RDO: Remote Data Object 远程数据对象远程数据对象 ADO: ActiveX Data Object ActiveX ADO: ActiveX Data Object ActiveX数据对象数据对象 ADO ADO是是DAO/RDODAO/RDO的后继产物,它扩展了的后继产物,它扩展了DAODAO和和RDORDO所使用的对象模型,所使用的对象模型,包含较少的对象,更多的属性、事件和方法。通过包含较少的对象,更多的属性、事件和方法。通过ADOADO可以访问各种各可以访问各种各样的数据源。样的数据源。3 3、结构化查询语言、结构化查询语言(SQL)(SQL) SQLStructured Query Language SQLStructured Query Language 实现对数据库的检索、排序、统计、修改等多种操作。实现对数据库的检索、排序、统计、修改等多种操作。数据库基本概念数据库基本概念 第第1313章章 数据库操作数据库操作1 1、 Select Select语句语句 格式:格式: Select ALL|DISTINCT Select ALL|DISTINCT From From Where Where Order By Order By ASC|DESC ASC|DESC, 功能功能: : 从指定的表中选出满足条件的记录,记录中包含指定的字段。从指定的表中选出满足条件的记录,记录中包含指定的字段。ALL:ALL: 缺省值,显示查询到的所有记录。缺省值,显示查询到的所有记录。DISTINCT:DISTINCT: 在显示查询结果中如果有多个相同的记录,只取其中的一个。在显示查询结果中如果有多个相同的记录,只取其中的一个。使用使用DISTINCTDISTINCT可以保证查询结果每一条记录的唯一性。可以保证查询结果每一条记录的唯一性。 : 指出所要查询的表,可以指定多个表,各表名之间用逗号隔开。指出所要查询的表,可以指定多个表,各表名之间用逗号隔开。 : 指出查询的条件。指出查询的条件。 : : 指明要在查询结果中包含的字段名,具体形式为指明要在查询结果中包含的字段名,具体形式为: : 表名表名. .字字段名,各项之间用逗号隔开,如果选择所有字段,则不用一一列出字段段名,各项之间用逗号隔开,如果选择所有字段,则不用一一列出字段名,只需写成名,只需写成: : 表名表名.*.*。 : : 将查询结果按该字段排序。将查询结果按该字段排序。 ASC: ASC: 指定按升序排序。指定按升序排序。 ESC: ESC: 指定按降序排序。指定按降序排序。SQL语句语句第第1313章章 数据库操作数据库操作例例: : 选出学生基本信息表中所有男生记录,查询结果只包括班级、学号和选出学生基本信息表中所有男生记录,查询结果只包括班级、学号和姓名字段姓名字段: : Select Select 学生基本信息学生基本信息. .班级班级, ,学生基本信息学生基本信息. .学号学号, , 学生基本信息学生基本信息. .姓名姓名 From From 学生基本信息学生基本信息 Where Where 学生基本信息学生基本信息. .性别性别 = = 男男 对于单个表的查询,可以省去各字段名前面的表名,以上对于单个表的查询,可以省去各字段名前面的表名,以上SelectSelect语语句可以简写成:句可以简写成: Select Select 班级班级, ,学号学号, ,姓名姓名 From From 学生基本信息学生基本信息 Where Where 性别性别 = = 男男 例例: : 显示学生基本信息表中男生的所有信息显示学生基本信息表中男生的所有信息: : Select * From Select * From 学生基本信息学生基本信息 Where Where 性别性别 = = 男男 例例: :显示所有学生的学号、姓名和所在专业名、系名显示所有学生的学号、姓名和所在专业名、系名: : Select Select 学生基本信息学生基本信息. .学号学号, ,学生基本信息学生基本信息. .姓名姓名, ,专业专业. .专业名称专业名称, ,系系. .系名系名 From From 学生基本信息学生基本信息, ,专业专业, ,系系 Where Where 学生基本信息学生基本信息. .专业编号专业编号= =专业专业. .专业编号专业编号 And And 专业专业. .系编号系编号= =系系. .系编号系编号SQL语句语句第第1313章章 数据库操作数据库操作2 2、InsertInsert语句语句 格式:格式:insert into insert into 表表 字段列表字段列表 values ( values (插入记录的数据插入记录的数据) ) 或或 insert into insert into 表表 SQL SQL语句语句 功能:添加记录功能:添加记录例例: : 设新建一个设新建一个“新系新系”表,包括表,包括“系编号系编号”、“系名系名” ” Insert Into Insert Into 系系 Select Select 系编号系编号, ,系名系名 From From 新系新系 Where Where 新系新系. .系编号系编号=005=005 表示从表示从“新系新系”表中选择系编号为表中选择系编号为005005的记录,并将其添加到的记录,并将其添加到“系系”表中。表中。Insert Into Insert Into 系系 Select Select 系编号系编号, ,系名系名 From From 新系新系 表示从表示从“新系新系”表中选择所有记录,并将其添加到表中选择所有记录,并将其添加到“系系”表中。表中。Insert Into Insert Into 新系新系 ( (系编号系编号, ,系名系名) Values (007, ) Values (007, 城市建设城市建设) 表示向表示向“新系新系”表中添加一条新记录,系编号字段值为表中添加一条新记录,系编号字段值为“007”“007”,系名字,系名字段值为段值为“城市建设城市建设”。SQL语句语句第第1313章章 数据库操作数据库操作3 3、 Delete Delete语句语句 格式:格式:delete form delete form 表表 where where 条件条件 功能:从一个或多个表中删除指定的记录。功能:从一个或多个表中删除指定的记录。 例例: Delete From : Delete From 新系新系 Where Where 系编号系编号=005=005 表示表示 从从“新系新系”表中删除所有系编号大于表中删除所有系编号大于“005”“005”的记录的记录。4 4、 Update Update语句语句 格式:格式:update update 表表 set set 新值新值 where where 条件条件 功能:更改表中一个或多个行的列值。功能:更改表中一个或多个行的列值。 例例: : 设在某设在某“职工工资职工工资”数据表中包含数据表中包含“姓名姓名”、“性别性别”、“基本基本工资工资”、“奖金奖金”、“实发工资实发工资”字段。字段。 给所有女职工增加给所有女职工增加2%2%的奖金。使用语句的奖金。使用语句: : Update Update 职工工资职工工资 Set Set 基本工资基本工资= =基本工资基本工资 * 1.02 * 1.02 Where Where 性别性别 = = 女女 在增加奖金之后计算实发工资,使用语句在增加奖金之后计算实发工资,使用语句: : Update Update 职工工资职工工资 Set Set 实发工资实发工资= =基本工资基本工资+ +奖金奖金SQL语句语句第第1313章章 数据库操作数据库操作 数据控件数据控件: Data: Data控件和控件和ADOADO控件,用来建立与数据库的关控件,用来建立与数据库的关 联,并确定记录集类型。利用联,并确定记录集类型。利用DataData控件和控件和ADOADO控控 件可以对数据库中的数据进行操作,却不能显示件可以对数据库中的数据进行操作,却不能显示 数据库中的数据。数据库中的数据。 数据绑定控件数据绑定控件: : 用于显示由数据控件所确定的记录集中的数用于显示由数据控件所确定的记录集中的数 据。据。 数据绑定控件、数据控件和数据库之间的关系如下数据绑定控件、数据控件和数据库之间的关系如下: : 数据控件和数据绑定控件数据控件和数据绑定控件绑定控件绑定控件数据控件数据控件数据库数据库第第1313章章 数据库操作数据库操作一、一、ADOADO控件控件1 1、添加方法、添加方法 “工程工程”“”“部件部件” “Microsoft ADO Data Control 6.0” “Microsoft ADO Data Control 6.0” ADO ADO控件经常使用两种数据源:控件经常使用两种数据源:ODBCODBC数据源和连接字符串。数据源和连接字符串。2 2、常用属性、常用属性(1)(1)ConnectionstringConnectionstring属性:用来建立到数据源的连接信息。属性:用来建立到数据源的连接信息。 例例: Provider=Microsoft.Jet.OLEDB.3.51;Persist Security : Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False; Data Source=D:mydbInfo=False; Data Source=D:mydb学生学生.mdb“.mdb“(2)(2)RecordSourceRecordSource属性属性: :用于确定具体可以访问的数据,这些数据构成了记用于确定具体可以访问的数据,这些数据构成了记 录集对象录集对象RecordsetRecordset。该属性值可以是一个表名称、。该属性值可以是一个表名称、 一个存储查询或一个查询字符串。一个存储查询或一个查询字符串。(3)(3)RecordsetRecordset属性属性: : 由由ADOADO控件所确定的记录集对象。控件所确定的记录集对象。3 3、常用方法、常用方法(1)(1)RefreshRefresh方法方法: : 当数据源发生变化时,可以使用当数据源发生变化时,可以使用RefreshRefresh方法来打开或重方法来打开或重 新打开数据库。新打开数据库。数据控件和数据绑定控件数据控件和数据绑定控件第第1313章章 数据库操作数据库操作二、二、RecordsetRecordset对象的属性与方法对象的属性与方法 ADO ADO控件的控件的RecordsetRecordset属性实际上是一个对象属性实际上是一个对象RecordsetRecordset对象。因此对象。因此有其属性和方法。有其属性和方法。1. 1. 常用属性常用属性(1) (1) BOFBOF、EOFEOF属性:属性: 当前记录在最后一个记录之后时,当前记录在最后一个记录之后时,EOFEOF值为值为TrueTrue; 当前记录在第一个记录之前时,当前记录在第一个记录之前时,BOFBOF值为值为TrueTrue。(2) (2) RecordCountRecordCount属性属性: : 指示当前记录的总数指示当前记录的总数(3) (3) FieldsFields属性属性: Fields: Fields属性是一个集合。集合中包含所有属性是一个集合。集合中包含所有Field(Field(字段字段) )对对象。每个象。每个FieldField对象对应于对象对应于RecordsetRecordset中的一列。使用中的一列。使用FieldField对象的对象的ValueValue属性可设置或返回当前记录的数据。属性可设置或返回当前记录的数据。 例例: : 在窗体上显示当前记录的在窗体上显示当前记录的“姓名姓名”字段的内容字段的内容: : Print Adodc1.Recordset.Fields( Print Adodc1.Recordset.Fields(姓名姓名).Value).Value 例例: : 将当前记录的将当前记录的“班级班级”字段改成字段改成“计算机计算机1 1班班”:”: Adodc1.Recordset.Fields(“ Adodc1.Recordset.Fields(“班级班级”).Value= ”).Value= 计算机计算机1 1班班 或简写成或简写成:Data1.Recordset.Fields(“:Data1.Recordset.Fields(“班级班级”) = ”) = 计算机计算机1 1班班 数据控件和数据绑定控件数据控件和数据绑定控件第第1313章章 数据库操作数据库操作2 2、常用方法、常用方法 (1) (1) MoveFirstMoveFirst方法方法: : 将当前行记录指针移到第一条记录将当前行记录指针移到第一条记录 MoveLastMoveLast方法方法: : 将当前行记录指针移到最后一条记录将当前行记录指针移到最后一条记录 MoveNextMoveNext方法方法: : 将当前行记录指针移到前一条记录将当前行记录指针移到前一条记录 MovePreviousMovePrevious方法方法: : 将当前行记录指针移到后一条记录将当前行记录指针移到后一条记录(2) (2) AddNewAddNew方法方法: : 在记录集中添加一条新记录。在记录集中添加一条新记录。例例: : 给给“学生基本信息学生基本信息”表添加一条新记录。表添加一条新记录。 Adodc1.Recordset.AddNew Adodc1.Recordset.AddNew Adodc1.Recordset.Fields( Adodc1.Recordset.Fields(学号学号) = 980010104) = 980010104 Adodc1.Recordset.Fields( Adodc1.Recordset.Fields(姓名姓名) = ) = 刘小波刘小波 Adodc1.Recordset.Fields(“ Adodc1.Recordset.Fields(“班级班级”) = “”) = “计计98-0198-01 Adodc1.Recordset.Fields( Adodc1.Recordset.Fields(性别性别) = ) = 男男 Adodc1.Recordset.Fields( Adodc1.Recordset.Fields(专业编号专业编号) = 001) = 001 Adodc1.Recordset.Fields( Adodc1.Recordset.Fields(出生日期出生日期) = #1/23/1980#) = #1/23/1980# Adodc1.Recordset.Update Adodc1.Recordset.Update数据控件和数据绑定控件数据控件和数据绑定控件第第1313章章 数据库操作数据库操作(4) (4) UpdateUpdate方法方法: : 保存对保存对RecordsetRecordset对象的当前记录所做的所有更改。对象的当前记录所做的所有更改。(5) (5) DeleteDelete方法方法: : 删除当前记录。删除当前记录。 删除当前记录后,在移动到其他记录之前已删除的记录将保持为当前删除当前记录后,在移动到其他记录之前已删除的记录将保持为当前状态。一旦离开已删除记录,则无法再次访问它。状态。一旦离开已删除记录,则无法再次访问它。数据控件和数据绑定控件数据控件和数据绑定控件第第1313章章 数据库操作数据库操作三、数据绑定控件三、数据绑定控件 要使数据绑定控件能够显示数据库记录集中的数据,必须首先在设计要使数据绑定控件能够显示数据库记录集中的数据,必须首先在设计时或在运行时设置这些控件的两个属性时或在运行时设置这些控件的两个属性: :(1 1)DataSourceDataSource属性属性: : 返回或设置一个数据源,通过该数据源,数据绑定返回或设置一个数据源,通过该数据源,数据绑定控件被绑定到一个数据库。控件被绑定到一个数据库。(2 2)DataFieldDataField属性属性: : 返回或设置数据绑定控件将被绑定到的字段名。返回或设置数据绑定控件将被绑定到的字段名。例:利用例:利用 “ “学生学生”数据库中的数据,用文本框显示数据库中的数据,用文本框显示“学生基本信息学生基本信息”表中表中的班级、学号、姓名、性别。使用命令按钮实现记录的向前、向后移的班级、学号、姓名、性别。使用命令按钮实现记录的向前、向后移动。动。数据控件和数据绑定控件数据控件和数据绑定控件Text1Text2Text3Text4Adodc1第第1313章章 数据库操作数据库操作Private Sub Command1_Click()Private Sub Command1_Click() “ “上一个上一个”按钮功能按钮功能 Command2.Enabled = True Command2.Enabled = True If Adodc1.Recordset.BOF Then If Adodc1.Recordset.BOF Then Command1.Enabled = False Command1.Enabled = False Command2.SetFocus Command2.SetFocus Else Else Adodc1.Recordset.MovePrevious Adodc1.Recordset.MovePrevious End If End IfEnd SubEnd SubPrivate Sub Command2_Click()Private Sub Command2_Click() “ “下一个下一个”按钮功能按钮功能 Command1.Enabled = True Command1.Enabled = True If Adodc1.Recordset.EOF Then If Adodc1.Recordset.EOF Then Command2.Enabled = False Command2.Enabled = False Command1.SetFocus Command1.SetFocus Else Else Adodc1.Recordset.MoveNext Adodc1.Recordset.MoveNext End If End If End Sub End Sub数据控件和数据绑定控件数据控件和数据绑定控件第第1313章章 数据库操作数据库操作一、一、ADOADO对象模型对象模型 使用使用ADOADO对象之前,首先要向当前工程添加对象之前,首先要向当前工程添加ADOADO的对象库。的对象库。 添加方法添加方法: : 工程工程引用引用打开打开“引用引用”对话框对话框选择选择“Microsoft Microsoft ActiveX Data Object 2.0 Library ActiveX Data Object 2.0 Library”选项。选项。 ADO ADO对象模型定义了一个可编程的分层对象集合,如下图所示对象模型定义了一个可编程的分层对象集合,如下图所示: :使用使用ADO访问数据访问数据ConnectionConnection对象对象ErrorError集合集合ErrorError对象对象CommandCommand对象对象FieldField对象对象ParameterParameter集合集合ParameterParameter对象对象RecordsetRecordset对象对象FieldField集合集合第第1313章章 数据库操作数据库操作1 1、ConnectionConnection对象对象 Connection Connection对象用于连接数据源。对象用于连接数据源。 例例: : 使用以下语句连接并打开一个使用以下语句连接并打开一个AccessAccess数据库数据库 “ “学生学生.mdb”.mdb”。 建立一个建立一个ConnectionConnection对象对象MyconMycon Dim Mycon As New ADODB.Connection Dim Mycon As New ADODB.Connection 定义定义MyconMycon对象的对象的ConnectionStringConnectionString属性属性 Mycon. Mycon.ConnectionStringConnectionString =provider=Microsoft jet OLEDB 3.51; =provider=Microsoft jet OLEDB 3.51; &data source=D:mydb&data source=D:mydb学生学生.mdb.mdb 按指定的连接打开数据库按指定的连接打开数据库 Mycon.Mycon.OpenOpen注:注:打开数据库之后,接下来就可以使用打开数据库之后,接下来就可以使用RecordsetRecordset对象实现对数据库的各对象实现对数据库的各种操作。种操作。使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作ConnectionConnection对象常用的属性、方法:对象常用的属性、方法:(1 1)ConnectionStringConnectionString属性属性:用来建立和数据库的链接,包含了连接数据:用来建立和数据库的链接,包含了连接数据源的各种信息;源的各种信息;(2 2)StateState属性属性:只读属性,用来确定一个:只读属性,用来确定一个ConnectionConnection对象是已经建立还是对象是已经建立还是关闭。关闭。(3 3)OpenOpen方法方法:建立同数据源的连接,方法如下:建立同数据源的连接,方法如下: 对象名对象名.Open .Open 连接字符串连接字符串,用户名,密码,连接选择用户名,密码,连接选择 (4 4)CloseClose方法方法:关闭一个数据连接:关闭一个数据连接(5 5)ExectueExectue方法方法:执行一个:执行一个SQLSQL查询查询(6 6)BeginTransBeginTrans方法方法:开始一个事务:开始一个事务(7 7)CommintTransCommintTrans方法方法:提交事务,所有在事务中进行的操作被写入数据:提交事务,所有在事务中进行的操作被写入数据库;库;(8 8)RollBackTransRollBackTrans方法方法:滚回事务,所有事务中的操作结果都被取消。:滚回事务,所有事务中的操作结果都被取消。 使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作2 2、RecordsetRecordset对象对象 同样可以对同样可以对ADOADO的的RecordsetRecordset对象进行数据记录的移动操作、数据的搜索、对象进行数据记录的移动操作、数据的搜索、记录的添加、删除、更新等,也可以使用记录的添加、删除、更新等,也可以使用BOFBOF和和EOFEOF来判断记录的位置。来判断记录的位置。(任何时候只能代表一个记录集合)(任何时候只能代表一个记录集合)例:打开学生数据库例:打开学生数据库“D:mydb“D:mydb学生学生.mdb”.mdb”,显示学生数据库中所有学生的,显示学生数据库中所有学生的姓名。姓名。(1) (1) 添加添加 “Microsoft ActiveX Data Object 2.0 Library” “Microsoft ActiveX Data Object 2.0 Library”(2) (2) 编写代码编写代码: : Private Sub Form_Load() Private Sub Form_Load() 定义定义MyconMycon为为ConnectionConnection对象对象 Dim Mycon As New ADODB.Connection Dim Mycon As New ADODB.Connection 定义定义MyRSMyRS为为RecordsetRecordset对象对象 Dim MyRS As New ADODB.Recordset Dim MyRS As New ADODB.Recordset使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作 Mycon. Mycon.ConnectionStringConnectionString = _ = _ provider=Microsoft.jet.OLEDB.3.51; & _ provider=Microsoft.jet.OLEDB.3.51; & _ data source=D:mydb data source=D:mydb学生学生.mdb.mdb Mycon. Mycon.OpenOpen 打开数据库打开数据库 打开一个由查询指定的记录集打开一个由查询指定的记录集 MyRS. MyRS.OpenOpen select * from select * from 学生基本信息学生基本信息, , MyconMycon MyRS. MyRS.MoveFirstMoveFirst 移动到记录集的第一条记录移动到记录集的第一条记录 Show Show Do While Not MyRS. Do While Not MyRS.EOFEOF 打印记录集中当前记录的打印记录集中当前记录的“姓名姓名”字段字段 Print Print MyRS.Fields(MyRS.Fields(姓名姓名) MyRS. MyRS.MoveNextMoveNext 移动到记录集的下一条记录移动到记录集的下一条记录 Loop LoopEnd SubEnd Sub使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作RecordSetRecordSet对象常用的属性和方法:对象常用的属性和方法:(1 1)RecordCountRecordCount属性属性:返回记录集对象中的记录个数(:返回记录集对象中的记录个数(必须使用必须使用MoveLaseMoveLase方法后才能得到准确的结果方法后才能得到准确的结果)(2 2)OpenOpen方法方法:打开指定连接的一个:打开指定连接的一个RecordSetRecordSet对象对象 对象名对象名.Open .Open 数据源或数据源或SQLSQL语句,语句,ConnectionConnection对象对象 ,游标类型,加,游标类型,加锁方式锁方式 加锁方式有加锁方式有4 4种:种:adLockReadOnly adLockReadOnly 只读只读 adLockPessimistic adLockPessimistic 悲观锁悲观锁adLockOptimistic adLockOptimistic 乐观锁乐观锁adLockBatchOptimistic adLockBatchOptimistic 成批更新乐观锁成批更新乐观锁(3 3)CloseClose方法方法:关闭指定连接的一个:关闭指定连接的一个RecordSetRecordSet对象对象(4 4)AddNewAddNew方法方法:添加一条空白记录:添加一条空白记录(5 5)DeleteDelete方法方法:删除一条记录:删除一条记录(6 6)UpDateUpDate方法方法:提交或更新一条记录:提交或更新一条记录使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作(7 7)MoveFirstMoveFirst方法方法、MoveLastMoveLast方法方法,MoveNextMoveNext方法方法,MovePreviousMovePrevious方法方法: 用来移动记录指针用来移动记录指针(8 8)EOFEOF属性属性:用来判断记录指针是否移动到记录末尾:用来判断记录指针是否移动到记录末尾(9 9)BOFBOF属性属性:用来判断记录指针是否移动到记录头:用来判断记录指针是否移动到记录头建立建立RecordSetRecordSet对象的方法:对象的方法:(1 1)ConnectionConnection对象的对象的ExecuteExecute方法;方法;(2 2)CommandCommand对象的对象的ExecuteExecute方法;方法;(3 3)RecordSetRecordSet对象的对象的OpenOpen方法;方法;(4 4)SetSet语句语句使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作3 3、CommandCommand对象对象 用于定义将对数据源执行的命令,主要用于提供一个通过用于定义将对数据源执行的命令,主要用于提供一个通过SQLSQL命令来操命令来操纵数据库的功能。纵数据库的功能。例:将前面的例题改写成用例:将前面的例题改写成用CommandCommand对象实现对象实现: : Private Sub Form_Load() Private Sub Form_Load() Dim Mycon As New ADODB.Connection Dim Mycon As New ADODB.Connection Dim MyRS As New ADODB.Recordset Dim MyRS As New ADODB.Recordset 定义定义MycomMycom为为CommandCommand对象对象 Dim Mycom As New ADODB.Command Dim Mycom As New ADODB.Command Mycon. Mycon.ConnectionStringConnectionString = _ = _ provider=Microsoft.jet.OLEDB.3.51; & _ provider=Microsoft.jet.OLEDB.3.51; & _ data source=D:mydb data source=D:mydb学生学生.mdb.mdb Mycon. Mycon.OpenOpen 打开数据库打开数据库使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作 定义一个查询字符串定义一个查询字符串 strSQL = select * from strSQL = select * from 学生基本信息学生基本信息 指定指定CommandCommand对象属于对象属于MyconMycon连接连接 Set Mycom. Set Mycom.ActiveConnectionActiveConnection = Mycon = Mycon 指定指定CommandCommand对象的命令文本为对象的命令文本为strSQLstrSQL Mycom. Mycom.CommandText CommandText = strSQL= strSQL 执行在执行在CommandTextCommandText属性中指定的查询属性中指定的查询 Set MyRS = Mycom. Set MyRS = Mycom.Execute Execute MyRS. MyRS.MoveFirst MoveFirst 移动到第一条记录移动到第一条记录 Show Show Do While Not MyRS. Do While Not MyRS.EOFEOF Print Print MyRS.Fields(MyRS.Fields(姓名姓名) MyRS. MyRS.MoveNextMoveNext Loop LoopEnd SubEnd Sub使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作CommandCommand对象常用的属性和方法:对象常用的属性和方法:(1 1)ActiveConnectionActiveConnection属性属性:在创建:在创建CommandCommand对象的时候用来指明该对象属对象的时候用来指明该对象属于那个于那个ConnectionConnection对象。对象。(2 2)CommandTextCommandText属性属性:用来保存希望执行的:用来保存希望执行的SQLSQL语句语句(3 3)ExecuteExecute方法方法:执行:执行CommandCommand对象中的命令内容对象中的命令内容使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作4 4、 ErrorError对象对象 任何涉及任何涉及ADOADO对象的操作都可能产生一个或多个提供者错误。产生错误对象的操作都可能产生一个或多个提供者错误。产生错误时,可以将一个或多个时,可以将一个或多个ErrorError对象置于对象置于ConnectionConnection对象的对象的ErrorsErrors集合中。其集合中。其他他ADOADO操作产生错误时,将清空操作产生错误时,将清空ErrorsErrors集合,并且将新的集合,并且将新的ErrorError对象置于对象置于ErrorsErrors集合中。集合中。5 5、 FieldField对象对象 Fields Fields集合包含集合包含RecordsetRecordset对象的所有对象的所有FieldField对象。每个对象。每个FieldField对象对应对象对应于于RecordsetRecordset中的一列。使用中的一列。使用FieldField对象的对象的ValueValue属性可以设置或返回当前记属性可以设置或返回当前记录的数据。使用录的数据。使用NameName属性可返回字段名。属性可返回字段名。使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作例:在前面例题的基础上增加一个例:在前面例题的基础上增加一个FieldField对象,将程序改成:对象,将程序改成:Private Sub Form_Load()Private Sub Form_Load() Dim Mycon As New ADODB.Connection Dim Mycon As New ADODB.Connection Dim MyRS As New ADODB.Recordset Dim MyRS As New ADODB.Recordset Dim Mycom As New ADODB.Command Dim Mycom As New ADODB.Command Dim f As ADODB.Field Dim f As ADODB.Field 定义定义f f为为FieldField对象对象 Mycon.ConnectionString = _ Mycon.ConnectionString = _ provider=Microsoft.jet.OLEDB.3.51; & _ provider=Microsoft.jet.OLEDB.3.51; & _ data source=D:mydb data source=D:mydb学生学生.mdb.mdb Mycon.Open Mycon.Open strSQL = select * from strSQL = select * from 学生基本信息学生基本信息 Set Mycom.ActiveConnection = Mycon Set Mycom.ActiveConnection = Mycon Mycom.CommandText = strSQL Mycom.CommandText = strSQL Set MyRS = Mycom.Execute Set MyRS = Mycom.Execute使用使用ADO访问数据访问数据第第1313章章 数据库操作数据库操作 MyRS.MoveFirst MyRS.MoveFirst Show Show Do While Not MyRS.EOF Do While Not MyRS.EOF For Each f In MyRS.Fields For Each f In MyRS.Fields Debug.Print & f.Name & = & f.Value Debug.Print & f.Name & = & f.Value Next f Next f MyRS.MoveNext MyRS.MoveNext Loop Loop End Sub End Sub程序中使用程序中使用f.Namef.Name显示字段名称显示字段名称 使用使用f.Valuef.Value显示字段值。显示字段值。使用使用ADO访问数据访问数据
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号