VB程序设计与数据管理.pptx
《VB程序设计与数据管理.pptx》由会员分享,可在线阅读,更多相关《VB程序设计与数据管理.pptx(50页珍藏版)》请在冰豆网上搜索。
VB程序设计与数据管理,杭州高级中学何杭广,主要内容,了解使用VB访问Access数据库的基本方法初步掌握通过ADO对象从数据库中获取数据的方法能够使用合适的算法处理从数据库中获取的数据,Windows7VisualBasic6.0Access2010,软硬件环境,VB与数据库连接方式,VisualBasic提供了比较丰富的数据访问技术,如ADO、DAO、RDO等,其中ADO(ActiveXDataObjects,ActiveX数据对象)是一种面向对象的编程接口,用以实现访问关系或非关系数据库中的数据,ADO对象是OLEDB的接口,它能完成DAO、RDO所有的功能。
ADO数据访问技术,一、ADO数据模型二、Connection对象及应用三、Command对象及应用四、Recordset对象及应用,一、ADO对象模型,ADO(ActiveXDataObjects)数据库访问技术,采用OLEDB的数据访问模式。
OLEDB和ODBC标准都是为了提供统一的访问数据接口,ODBC标准的对象是基于SQL的数据源,而OLEDB的对象则是范围更为广泛的任何数据存储。
1.ADO对象模型组成,ADO数据模型定义了一个可编程的对象集合,主要由三个对象成员Connection、Command、Recordset和几个集合对象Errors、Parameters、Fields、Properties组成。
Connection对象完成链接功能,通过链接可以从应用程序中访问数据源。
Command对象可以通过已建立的链接发出命令,对数据源进行指定的操作。
Recordset对象查询命令的返回数据以行(记录)为单位存储在本地,这些数据的集合称为记录集。
一条记录包含一个或多个字段,模型中用Field体现Recordset对象的字段。
错误可能在应用程序中随时发生,通常是无法建立链接、执行命令等引起的,模型中用Error对象体现错误。
ADO对象模型图,指定连接数据来源,发出命令信息从数据源获取所需数据,查询命令的返回的记录集,访问数据源时所返回的错误信息,与命令对象有关的参数,记录集中某个字段的信息,每个ADO对象都有一组惟一的属性,用来描述或控制对象,
(1)初始化COM库,引入ADO库定义文件;
(2)用Connection对象连接数据库;(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理;(4)使用完毕后关闭连接释放对象。
2.ADO对象基本操作流程,
(1)引入ADO库定义文件,在VB程序中使用ADO对象,必须先为当前工程引用ADO的对象库。
方法:
执行“工程”菜单中“引用”命令,弹出“引用”对话框,如图所示。
单击“确定”,选择该选项(不同环境下ADO的版本号可能不同),二、Connection对象,Connection用来创建到数据库建立连接。
在建立连接时,最主要的是设置连接字符串,用来指定连接数据库所用的驱动程序、数据源名称、用户名和密码等。
1.Connection对象的常用属性:
(1)ConnectionString属性ConnectionString连接字符串,用于建立连接数据源的信息。
例.创建到数据库song.accdb的链接。
DimcnnAsNewADODB.ConnectionNew用于创建新对象cnn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DataSource=+App.Path+song.accdbProvider定义数据源提供者,使用Microsoft.ACE.OLEDB.12.0可以访问Access2010数据;DataSource定义数据库的文件名,需指定绝对路径,App.Path返回当前应用程序所在的绝对路径。
(2)State属性,返回Connection对象的状态,State属性的值如下表所示。
例:
判断链接的状态。
cnn.open打开到数据库的链接Ifcnn.State=adStateOpenThenMsgBox链接已打开cnn.Close关闭到数据库的链接Ifcnn.State=adStateColsedThenMsgBox链接已关闭,2.Connection对象的常用方法
(1)Open方法,打开到数据源的连接。
语法结构如下:
Connection对象.OpenConnectionString,UserID,PassWord,Options其中:
Connection对象是已定义的Connection对象的实例;ConnectionString为可选项,是链接字符串;UserID为可选项,是访问数据库的用户名,PassWord为可选项,是密码;Options为可选项,是链接选项。
如果设置了Connection对象的ConnectionString属性,Open方法就不需要设置参数了。
(2)Close方法,关闭到数据源的连接。
(3)Execute方法,在连接上执行一个SQL语句。
(4)Cancel方法,取消Open或Execute方法的调用。
创建Connection对象connDimconnAsNewADODB.Connection链接数据库路径conn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DataSource=+App.Path+song.accdb打开到数据库的链接conn.Open判断链接的状态,如果conn处于打开状态,则显示“链接已成功打开”Ifconn.State=adStateOpenThenMsgBox链接已成功打开关闭到数据库的链接conn.Close判断链接的状态,如果conn处于关闭状态,则显示“链接已关闭”Ifconn.State=adstatecolsedThenMsgBox链接已成功关闭释放对象Setconn=Nothing,二、Command对象,定义了将对数据源执行的命令,如创建、添加、取回、删除或更新记录等命令。
使用命令对象来查询数据库,查询结果以数据集对象(Recordset)形式返回。
命令对象在操纵数据库前需要与一个已经打开的连接对象(Connection)建立关联。
1.Command对象的常用属性
(1)ActiveConnection属性,设置到数据源的连接信息。
通过设置该属性使打开的链接与Command对象关联。
(2)CommandText属性,定义命令(例如,SQL语句)的可执行文本。
2.Command对象的常用方法
(1)Execute方法,执行CommandText属性指定的查询、SQL语句或存储过程。
(2)Cancel方法,取消Execute方法的调用,例:
Command对象应用示例,Command1按钮,“注册”按钮事件代码,PrivateSubCommand1_Click()DimconnAsNewADODB.ConnectionDimcmdAsNewADODB.CommandDimstrSQLAsStringconn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DATASource=&App.Path&users.accdbstrSQL=INSERTINTOusers(username,userpsd)VALUES(&Text1&,&Text2&)cmd.CommandText=strSQLconn.OpenSetcmd.ActiveConnection=conncmd.Execute:
conn.Close:
Setconn=NothingEndSub,四、Recordset对象,Recordset对象表示从数据库返回的一系列记录的集合。
一个Recordset对象由记录和列(字段)组成。
通过Recordset可以对记录及组成记录的列进行各种操作。
1.Recordset对象的常用属性
(1)ActiveConnection属性,设置或返回Recordset对象所属的Connection对象。
(2)AbsolutePosition属性,指定Recordset对象中当前记录的序号位置。
(3)BOF属性,若当前的记录位置在第一条记录之前,则返回true,否则返回fasle。
EOF属性,若当前记录的位置在最后的记录之后,则返回true,否则返回fasle。
(4)RecordCount属性,返回Recordset对象中记录的当前数目。
(5)CursorType属性,设置或返回一个Recordset对象的游标类型。
(6)LockType属性,指定打开Recordset对象使用的锁定类型,其值如下表所示。
(7)Sort属性,设置排序字段。
(8)Filter属性,设置Recordset对象中的筛选条件。
2.Recordset对象常用方法
(1)AddNew方法,创建和初始化新记录,其语法为:
Recordset对象.AddNewFieldList,ValuesAddNew方法为记录集添加新记录后,需使用UpDate将所添加的数据存储到数据库中。
(2)Delete方法,删除当前记录或记录组。
(3)Move方法,移动Recordset对象中当前记录的位置。
(4)MoveFirst、MoveLast、MoveNext和MovePrevious方法,移动到指定Recordset对象中的第一条、最后一条、下一条或上一条记录,使该记录成为当前记录。
(5)Requery方法,重新执行对象所基于的查询,更新Recordset对象中的数据。
(6)Update方法,保存对Recordset对象当前记录所做修改。
CancelUpdate方法,可取消对当前记录修改。
(7)Open方法,打开代表基本表、查询的结果或保存的Recordset中记录的游标。
其语法如下:
Recordset对象.OpenSource,ActiveConnection,CursorType,LockType,Options其中,Source为可选项,是记录源,可以是SQL语句、表名、存储过程等;ActiveConnection可选项,指定相应的Connection对象,可以是已打开的Connection对象的变量名或者是包含ConnectionString参数的字符串;CursorType可选项,指定打开Recordset对象使用的指针类型。
Recordset对象应用示例,创建Connection对象connDimconnAsNewADODB.Connection创建Recordset对象rsDimrsAsNewADODB.RecordsetDimstrSQLAsString,tempAsStringDimmAsInteger,nAsInteger链接数据库路径conn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DataSource=+App.Path+song.accdb打开到数据库的链接conn.Open,设置查询的SQL语句strSQL=SELECT*FROMsong设置rs的ActiveConnection属性,指定与其关联的数据库链接Setrs.ActiveConnection=conn设置游标类型rs.CursorType=adOpenStatic设置锁定类型rs.LockType=adLockOptimistic打开记录集,将从表song中读取的结果集保存到记录集rs中rs.OpenstrSQL,List1.ClearList1.AddItem班级评委1评委2评委3评委4评委