




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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的对象则是范围更为广泛的任何数据存储。应用程序ADOOLEDBSQLServerAccessExcel……Email1.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.Connection'New用于创建新对象cnn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\song.accdb"Provider定义数据源提供者,使用Microsoft.ACE.OLEDB.12.0可以访问Access2010数据;DataSource定义数据库的文件名,需指定绝对路径,App.Path返回当前应用程序所在的绝对路径。常
量说
明adStateClosed对象已关闭adStateOpen对象已打开adStateConnecting对象正在连接adStateExecuting对象正在执行命令adStateFetching正在检索对象的行(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.accdb"strSQL="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对象的游标类型。常
量值说
明AdOpenForwardOnly0默认值,打开仅向前类型游标,只能用MoveNext读取,打开的同时建立的数据库的备份,不能即时体现数据库记录状态,比如记录的编辑和增删。AdOpenKeyset1打开键集类型游标,可上下滚动游标,给打开的记录创建了一个关键字列表,类似记录集的描述,访问的时候才去取得数据值,就是说可以即时看到修改信息,但是不能即时得到数据是否删除的信息,因为这个关键字列表是事先初始化好的。程序中常用此类型。AdOpenDynamic2打开动态类型游标,完全可滚动游标,可得到数据的最新状态,但执行效率也会有所降低。AdOpenStatic3打开静态类型游标,完全可滚动游标,它先将数据库备份文件之后进行操作,可以断开数据库连接后继续使用。(6)LockType属性,指定打开Recordset对象使用的锁定类型,其值如下表所示。常
量值说
明AdLockReadOnly1默认值,只读锁AdLockPessimistic2悲观锁,操作者打开之后立即上锁,直到修改完成或者放弃修改为止,此时其他人无法编辑AdLockOptimistic3乐观锁,当记录将要被更新的时候才开始上锁,但是不能保证在提交修改之前是否有人改动过AdLockBatchOptimistic4批量乐观锁(7)Sort属性,设置排序字段。(8)Filter属性,设置Recordset对象中的筛选条件。2.Recordset对象常用方法(1)AddNew方法,创建和初始化新记录,其语法为:
Recordset对象.AddNewFieldList,Values
AddNew方法为记录集添加新记录后,需使用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.OpenstrSQLList1.ClearList1.AddItem"班级评委1评委2评委3评委4评委5"Form=1Tors.RecordCounttemp=""Forn=0Tors.Fields.Count-1temp=temp&Format(rs.Fields(n),"0.0")&Space(5)NextnList1.AddItemtemprs.MoveNextNextmrs.CloseSetrs=Nothing输出所有记录'rs.RecordCount是查询结果的记录总条数Form=1Tors.RecordCount
sum=0Forn=1Tors.Fields.Count-1score(m,n)=rs.Fields(n)sum=sum+score(m,n)Nextn'计算平均得分
score(m,6)=Int(sum/5*100+0.5)/100'输出各班得分和平均得分
temp=rs.Fields(0)Forn=1To6temp=temp&Space(3)&Format(score(m,n),"0.00")NextnList1.AddItemtemp'向后移一条记录
rs.MoveNextNextm
统计平均得分单表查询实例“第一条”按钮代码PrivateSubCommand1_Click()DimmAsInteger'移到第一条
rs.MoveFirst
Command1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=TrueCommand4.Enabled=TrueForm=0To5Text1(m)=rs.Fields(m)NextmEndSub“前一条”按钮代码PrivateSubCommand2_Click()'向前移一条
rs.MovePrevious
Command3.Enabled=TrueCommand4.Enabled=TrueIfrs.AbsolutePosition=1ThenCommand1.Enabled=FalseCommand2.Enabled=FalseEndIf
Form=0To5Text1(m)=rs.Fields(m)NextmEndSub“后一条”按钮代码PrivateSubCommand3_Click()'向后移一条
rs.MoveNext
Command1.Enabled=TrueCommand2.Enabled=TrueIfrs.EOFThenCommand3.Enabled=FalseCommand4.Enabled=Falsers.MoveLastElseForm=0To5Text1(m)=rs.Fields(m)NextmEndIfEndSub“最后一条”按钮代码PrivateSubCommand4_Click()'移到最后一条
rs.MoveLastCommand4.Enabled=FalseCommand3.Enabled=FalseCommand1.Enabled=TrueCommand2.Enabled=TrueForm=0To5Text1(m)=rs.Fields(m)NextmEndSubSQL语言SQL语言SQL语言的原名:结构化查询语言(StructuredQueryLanguage),是对数据库操作的命令集合。通俗一点来说:SQL语言就是我们与数据库进行交流的一种语言。SQL功能:可以面向数据库执行查询、从数据库取回数据、可在数据库中插入新的纪录、可更新数据库中的数据、可从数据库删除记录、可创建新数据库、可在数据库中创建新表等。SQL常用语句SELECT--从数据库表中获取数据INSERTINTO--向数据库表中插入数据UPDATE--更新数据库表中的数据DELETE--从数据库表中删除数据SELECT语句的基础用法SELECT[DISTINCT]目标列表达式1[AS别名][,目标列表达式2][AS别名],…FROM表名1[,表名2]…[WHERE条件表达式][GROUPBY列名1[HAVING组条件表达式]][ORDERBY列名2[ASC|DESC]];SQL语言例子例如用账号“C01”和密码“123”来登录某购物系统,整个验证过程是怎样的?假设数据库中“用户表”的结构如下:账号是username密码是userpwdSQL语言中的Select语句一般写法:Select字段1,字段2……from表where条件选出什么从哪里有什么条件问题:选出密码从用户表条件是C01账户Selectuserpwdfrom用户表whereusername=‘C01’通过这句话,从数据库寻找用户名为“C01”的密码,如果找到可以进行密码验证。SELECT查询过程查询杭州到南京的空调特快数据库服务器发送指令返回结果查询将产生一个虚拟表,称为“记录集”,其中数据是从数据库现有表中过滤出来的。车次出发站到达站出发时间到达时间T282杭州南京17:1923:20T7786杭州南京10:0816:19T112杭州南京9:4515:41车次出发站到达站出发时间到达时间T282杭州南京17:1923:20K526杭州东上海南2:013:54K1124天津广州东10:3920:57T7786杭州南京10:0816:19T57北京西重庆北11:486:31T112杭州南京9:4515:41T74长春天津10:5720:22T164上海拉萨19:3620:15SELECT车次,出发站,到达站,出发时间,到达时间FROMtickets.accdbWHERE出发站=‘杭州’AND到达站=‘南京’AND车次类型=‘特快’;Access中SQL查询语句的执行环境5.单击“运行”按钮,执行SQL语句4.输入SQL语句2.单击“关闭”按钮1.打开一个Access数据库文件,单击“查询设计”按钮3.单击“SQL视图”(一)INSERT语句的功能及用法(二)UPDATE语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025老地基转让协议合同样本
- 2025专利技术许可合同
- 2025标准借款合同范本2
- 2025电子产品买卖合同书范本
- 2025年混凝土浇筑工程的施工合同
- 2025钢筋工劳务分包合同
- 2025年工程瑞雷波仪项目合作计划书
- 2025铝合金型材购销合同范本
- 2025年科学与工程计算软件合作协议书
- 2025年窄带无线接入网(用于电话)项目合作计划书
- 《基于嵌入式Linux的农业信息采集系统设计与研究》
- 外科创伤处理-清创术(外科课件)
- 小型手推式除雪机毕业设计说明书(有全套CAD图)
- 《城市级实景三维数据规范》
- 2024年中国酸奶袋市场调查研究报告
- 合同到期不续签的模板
- 搬迁服务项目 投标方案(技术标)
- 2005室外给水管道附属构筑物阀门井05S502
- 浙江省宁波市镇海中学2025届高三数学下学期适应性考试试题含解析
- “双新”背景下高中信息技术单元整合教学实践
- 广东省佛山2024年中考一模数学试卷(含答案)
评论
0/150
提交评论