《41使用VB访问数据库》由会员分享,可在线阅读,更多相关《41使用VB访问数据库(26页珍藏版)》请在金锄头文库上搜索。
1、41 使用使用VB访问数据库访问数据库1. 使用使用ADO访问Access数据数据库(1)ADO的概念的概念ADO(Activex Data Ojbects)是微是微软公司提供的种新的公司提供的种新的数据数据库的存取技的存取技术,是,是应用程序用程序访问数据数据库的的编程接口。通程接口。通过ADO来可引用包括来可引用包括SQL Server、Oracle、ACCESS 等数据等数据库、甚至、甚至EXCEL表格、文本文件、表格、文本文件、图形文件和无格式的数形文件和无格式的数据文件在内的任何一种据文件在内的任何一种OLE DB数据源。数据源。该接口主要包含了接口主要包含了三个三个对象成象成员(可
2、可编程程对象集合象集合):Connection对象、象、Command对象和象和Recordset对象。各象。各对象成象成员中,中,还包含了包含了几个集合几个集合对象:象:Errors、Parameters、Fields、Properties。第四章算法在数据管理中的应用第四章算法在数据管理中的应用Connection对象象(连接接对象象)Connection对象用于建立与数据象用于建立与数据库的的连接,通接,通过连接可从接可从应用程序用程序访问数据源。它保存数据源。它保存诸如指如指针类型、型、连接字符串、接字符串、查询超超时、连接超接超时和缺省数据和缺省数据库这样的的连接信息。接信息。Com
3、mand对象象(命令命令对象象)在建立在建立Connection后,可以后,可以发出命令操作数据源。一般情出命令操作数据源。一般情况下,况下,Command对象可以在数据象可以在数据库中添加,中添加,删除或更新数据,除或更新数据,或者在表中或者在表中进行数据行数据查询。Command对象在定象在定义查询参数或参数或执行一个有行一个有输出参数的存出参数的存储过程程时非常有用。非常有用。Recordset对象象(记录集集对象象)用来存用来存储数据操作返回的数据操作返回的记录集。集。Recordset对象只代表一象只代表一个个记录集,集,这个个记录集是一个集是一个连接的数据接的数据库中的表,或者是中
4、的表,或者是Command对象的象的执行行结果返回的果返回的记录集。在集。在ADO对象模型中,象模型中,是在行中是在行中检查和修改数据的最主要的方法,所有和修改数据的最主要的方法,所有对数据的操作几数据的操作几乎都是在乎都是在Recordset对象中完成的。象中完成的。Record对象用于指定行、移象用于指定行、移动行、添加、更改、行、添加、更改、删除除记录。(2)ADO对象基本操作流程象基本操作流程初始化初始化COM库,引入,引入ADO库定定义文件;文件;用用Connection对象象连接数据接数据库;利用建立好的利用建立好的连接,通接,通过Connection、Command对象象执行行S
5、QL命令,或利用命令,或利用Recordset对象取得象取得结果果记录集集进行行查询、处理;理;使用完使用完毕后关后关闭连接接释放放对象。象。(3)引入引入ADO库定定义文件文件在在Visual Basic程序中使用程序中使用ADO对象,必象,必须先先为当前工程引当前工程引用用ADO的的对象象库。方法:。方法:执行行“工程工程”菜菜单中中 “引用引用”命令,命令,弹出出“引用引用”对话框,如框,如图所示。在勾所示。在勾选如如图所示的所示的选项后,点后,点击“确定确定”按按钮即可完成引用。即可完成引用。注意:不同注意:不同环境下境下ADO的版本号可能不同。的版本号可能不同。2Connection
6、对象象Connection对象用于建立与数据象用于建立与数据库的的连接。接。(1)Connection对象的常用属性象的常用属性ConnectionString属性属性在用在用Connection建立与数据建立与数据库的的连接接时,需要,需要设置置ConnectionString属性的属性的值(即即连接字符串接字符串),以指定,以指定连接数接数据据库所用的所用的驱动程序、数据源名称、用程序、数据源名称、用户名和密名和密码等。等。Mode属性,指定属性,指定Connection对象修改数据的象修改数据的权限。限。State属性,返回属性,返回Connection对象的状象的状态。(2)Conne
7、ction对象的常用方法象的常用方法Open方法,打开到数据源的方法,打开到数据源的连接。接。语法如下:法如下:Connection对象象Open ConnectionString, UserID, PassWord, Options以下参数均以下参数均为可可选项:ConnectionString:包含:包含连接信息的字符串。接信息的字符串。UserID:包含建立:包含建立连接接时所使用的用所使用的用户名称。名称。Password:字符串,包含建立:字符串,包含建立连接接时所用密所用密码。Options:设置置为adConnectAsync,则异步打开异步打开连接;接;如果如果设置置为Conn
8、ectComplete,当,当连接可用接可用时将将调用用该事件。事件。Close方法,关方法,关闭到数据源的到数据源的连接。接。Execute方法,在方法,在连接上接上执行命令。行命令。Cancel方法,取消方法,取消Open或或 Execute方法的方法的调用。用。【例例】使用使用Connection对象象连接到数据接到数据库Scenic.accdb。Private Sub Form_Load()Dim conn As New ADODB.Connection创建建Connection对象象connconn.ConnectionString “ProviderMicrosoft.ACE.OL
9、EDB.12.0;Data Source ” App.Path “ Sdudent.accdb”连接数据接数据库路径路径conn.Open打开到数据打开到数据库连接接If conn.State adStateOpen Then MsgBox “连接已打开接已打开” 判断判断连接状接状态conn.Close 关关闭数据数据库连接接If conn.State adstatecolsed Then MsgBox “连接已关接已关闭” End Sub其中,其中, “ Provider ”用于指定用于指定连接的提供者接的提供者(Microsoft. ACE. OLEDB. 12. 0可以可以访问 Acc
10、ess 2010数据数据库), “ DATA Source”用于指定数据用于指定数据库的文件名的文件名(含含绝对路径路径)。App.Path返回当前返回当前应用程序所在的用程序所在的绝对路径。路径。3Command对象象Command对象,定象,定义将将对数据源数据源执行的命令。命令行的命令。命令对象在象在操操纵数据数据库前需要与一个已前需要与一个已经打开的打开的连接接对象象(Connection)建立建立关关联。(1)常用属性常用属性ActiveConnection属性,属性,设置到数据源的置到数据源的连接信息。通接信息。通过设置置该属性使打开的属性使打开的连接与接与Command对象关象关
11、联。CommandText属性,定属性,定义命令的可命令的可执行文本,包含要行文本,包含要执行的行的SQL语句、表名、存句、表名、存储过程等内容。程等内容。(2)常用方法常用方法Execute方法,方法,执行行CommandText属性指定的属性指定的查询、SQL语句或存句或存储过程。程。Cancel方法,取消方法,取消Execute方法的方法的调用。用。4Recordset对象象Recordset对象表示从数据象表示从数据库返回的一系列返回的一系列记录的集合。一的集合。一个个 Recordset 对象由象由记录和列和列(字段字段)组成。通成。通过Recordset可以可以对记录及及组成成记录
12、的列的列进行各种操作。行各种操作。(1)Recordset对象的常用属性象的常用属性ActiveConnection属性,属性,设置或返回置或返回Recordset对象所属的象所属的Connection对象。象。AbsolutePosition 属性,指定属性,指定 Recordset 对象中当前象中当前记录的序号位置。的序号位置。BOF属性,若当前的属性,若当前的记录位置在第一条位置在第一条记录之前,之前,则返返回回True,否,否则返回返回Fasle。EOF属性,属性, 若当前若当前记录的位置在最后的的位置在最后的记录之后,之后,则返返回回True,否,否则返回返回Fasle。Record
13、Count属性,返回属性,返回Recordset对象中象中记录的当前数目。的当前数目。CursorType属性,属性,设置或返回一个置或返回一个 Recordset 对象的游象的游标类型。型。LockType属性,指定打开属性,指定打开Recordset对象使用的象使用的锁定定类型。型。Sort属性,属性,设置排序字段。置排序字段。Filter属性,属性,设置置Recordset对象中的象中的筛选条件。条件。(2)Recordset对象常用方法象常用方法AddNew方法,方法,创建和初始化新建和初始化新记录,其,其语法法为:Recordset对象象AddNewFieldList, Values
14、AddNew方法方法为记录集添加新集添加新记录后,需使用后,需使用UpDate将所添将所添加的数据存加的数据存储到数据到数据库中。中。Delete方法,方法,删除当前除当前记录或或记录组。Move方法,移方法,移动Recordset对象中当前象中当前记录的位置。的位置。MoveFirst、MoveLast、MoveNext和和MovePrevious方法,方法,移移动到指定到指定Recordset对象中的第一条、最后一条、下一条或上一象中的第一条、最后一条、下一条或上一条条记录,使,使该记录成成为当前当前记录。Requery方法,重新方法,重新执行行对象所基于的象所基于的查询,更新,更新Rec
15、ordset对象中的数据。象中的数据。Update方法,保存方法,保存对Recordset对象当前象当前记录所做修改。所做修改。CancelUpdate方法,可取消方法,可取消对当前当前记录修改。修改。Open方法,打开代表基本表、方法,打开代表基本表、查询的的结果或保存的果或保存的 Recordset 中中记录的游的游标。其。其语法如下:法如下:Recordset对象象OpenSource, ActiveConnection, CursorType, LockType, Options 以下均以下均为可可选项: Source为记录源,可以是源,可以是SQL语句、表名等。句、表名等。 Acti
16、veConnection指定相指定相应的的Connection对象。象。 CursorType指定打开指定打开Recordset对象使用的指象使用的指针类型。型。【例例】Recordset对象象应用示例用示例Dim conn As New ADODB.ConnectionDim rs As New ADODB.Recordset 创建建Recordset对象象Dim strSQL As Stringconn.ConnectionString “Provider Microsoft.ACE.OLEDB.12.0;Data Source” & App.Path & “users1.accdb”st
17、rSQL “SELECT * FROM users” 打开数据表打开数据表(记录集集)语句句conn.OpenSet rs.ActiveConnection conn 将将Recordset对象与象与实例例Conn建立关建立关联rs.LockType adLockOptimistic 打开打开Recordset对象象锁定定类型型为乐观锁rs.CursorType adOpenStatic 设置置Recordset对象游象游标为静静态类型型rs.Open strSQL 打开数据表以打开数据表以获取表中数据取表中数据 rs.AddNew 数据表新建数据表新建记录初始化初始化 rs.Fields(1
18、) Text1 将文本框中的内容添加到将文本框中的内容添加到记录字段字段1中中 rs.Fields(2) Text2 将文本框中的内容添加到将文本框中的内容添加到记录字段字段2中中 rs.Update 更新数据表更新数据表 conn.Close 关关闭数据数据库连接接 Set connNothing说明:打开明:打开Recordset对象象时,若,若Recordset非空,当前非空,当前记录位于第一条位于第一条记录。Close方法,关方法,关闭记录集。集。本本节课学学习要求初步了解要求初步了解ADO的概念,了解使用的概念,了解使用ADO访问Access数据数据库的步的步骤。识记ADO对象成象成
19、员Connection、Command和和Recordset。识记Connection的用法,了解的用法,了解Recordset对象象获取表取表中的数据的方法。考中的数据的方法。考查方式方式为选择题与填空与填空题。1下列有关下列有关ADO的的说法不正确的是法不正确的是 ()AADO是是ActiveX数据数据对象的象的简称称BADO中的中的Recordset对象是一系列数据的集合象是一系列数据的集合C利用利用ADO打开数据表后,打开数据表后,记录指指针定位在定位在EOF上上DADO技技术不是唯一不是唯一访问数据数据库的技的技术C C 2 下列有关下列有关Recordset对象常用方法象常用方法说
20、法法错误的是的是()ADelete方法用来方法用来删除当前除当前记录BMoveNext方法用来将指方法用来将指针下移一条下移一条记录CAddNew方法用来方法用来创建和初始化新建和初始化新记录DUpdate方法用来关方法用来关闭数据数据库D3使用使用ADO时,可以通,可以通过Connection对象的哪个属性建立到象的哪个属性建立到数据数据库连接接()AMode BConnectionStringCState DConnB B 4在在Recordset对象中象中查找找记录,如果找不到相匹配的,如果找不到相匹配的记录,则记录指指针定位在定位在()A首首记录前前BOF B未未记录后后EOFC第一条
21、第一条记录 D随机位置随机位置B5在在VB程序中通程序中通过ADO对象象访问数据数据库,首先通,首先通过Connection对象建立与数据象建立与数据库之之间的的连接,接,执行行SQJ查询语句后,句后,查询结果将存果将存储在在()对象中。象中。ACommand BRecordsetCConnection DErrorsB6在在Fields对象中更新当前数据表象中更新当前数据表记录后,若要将数据后,若要将数据进行保存,行保存,应使用使用()方法。方法。AOpen BCloseCMoveNext DUpdateD7在在Recordset对象常用的方法中,移象常用的方法中,移动记录到数据表末尾的方到
22、数据表末尾的方法是法是 ()AMoveFirst BMovePreviousCMoveNext DMoveLastD8.有下列有下列VB程序段:程序段:Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim strSQL As Stringconn.ConnectionString “Provider Microsoft.ACE.OLEDB.12.0;Data Source ” & App.Path & “ student.accdb”strSQL “ SELECT * FROM users”conn.OpenSet r
23、s.ActiveConnection connrs.Open strSQLText1.textrs.Fields(“ Height ”) 请阅读代代码,问答下列答下列问题。(1)程序中定程序中定义的的Connection对象象实例名称例名称为_,该对象象实例例连接接的数据的数据库为_。(2)文本框文本框Text中中显示的是示的是_数据表中第数据表中第_条条记录的信息。的信息。connstudent.accdbusers19以下程序的功能是模以下程序的功能是模拟一个一个软件的注册件的注册过程。运行界面如程。运行界面如下下图所示:所示:程序运行程序运行时,在文本框,在文本框Text1中中输入入帐号
24、,在文本框号,在文本框Text2中中输入密入密码,在文本框,在文本框Text3中中输入确定密入确定密码。点。点击“注册注册”按按钮Command1,添加用,添加用户注册信息到数据注册信息到数据库中。中。程序代程序代码如下:如下:Dim conn As New ADODB.ConnectionDim cmd As New ADODB.CommandDim rs As New ADODB.RecordsetDim strSQL As Stringconn.ConnectionString “Provider Microsoft.ACE.OLEDB.12.0;Data Source” & App.P
25、ath & “users1.accdb”strSQL “SELECT * FROM users WHERE username ” & Text1 & “”cmd.CommandText strSQLconn.OpenSet cmd.ActiveConnection connSet rs cmd.ExecuteIf Text1 “” ThenMsgBox “请输入用入用户名!名!” : Text1.SetFocus :Exit SubEnd IfIf rs.EOF ThenIf Trim(Text2.Text) Trim(Text3.Text) ThenstrSQL “INSERT INTO u
26、sers (username,userpsd) VALUES (“ & Text1 & ”,“ & MD5(Text2, 32) & ”)”cmd.CommandText strSQL : cmd.ExecuteMsgBox “账号注册成功!号注册成功!”, vbOKOnly, “注册成功注册成功”ElseMsgBox “二次密二次密码不一致!不一致!”, vbOKOnly, “请重重输入密入密码”Text2.SetFocusEnd IfElseMsgBox “请重新重新输入用入用户名注册!名注册!”, vbOKOnly, “请重新注册重新注册”Text1.SetFocusEnd If请阅读代代码,回答下列,回答下列问题。(1)该程序中定程序中定义的的Connection对象象实例的数据例的数据库文件文件类型是型是_。(2)判断用判断用户注册是否成功的条件注册是否成功的条件语句是句是_。(3)用用户注册成功后,用注册成功后,用户名与密名与密码被保存在被保存在_数据表中。数据表中。 accdb(Access数据数据库文件文件)If Trim(Text2.text)= Trim(Text3.text)users