VB程序设计与数据管理03_第1页
VB程序设计与数据管理03_第2页
VB程序设计与数据管理03_第3页
VB程序设计与数据管理03_第4页
VB程序设计与数据管理03_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB程序设计与数据管理乐清中学李曙强3863365@限定性选修模块增加算法在数据管理中的应用必修中的数据库相关知识枚举、排序、查找的综合运用VB访问数据库,建立数据库连接读取数据库用数组存储部分数据查找、排序等算法,对数据库中的数据进行简单统计exampleDimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimnAsIntegerDima(200)AsSinglePrivateSubCommand1_Click()conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="&App.Path&"\rizhi.accdb"conn.OpenSetrs.ActiveConnection=connrs.Open"select*fromgnipc"n=0DoWhileNotrs.EOFn=n+1a(n)=rs.Fields(“登录次数")rs.MoveNextLooprs.Closeconn.CloseEndSubWindows732位VisualBasic6.0SP6(完全安装版)Access2010软硬件环境Access数据库文件版本转换Access2000,2003*.mdbAccess2010*.accdb在access2010中从mdb转为accdb格式目录二、ADO数据访问技术三、ADO对象使用实例一、SQL查询基础SQL语言及其功能、特点SQL:StructuredQueryLanguage结构化查询语言,是对数据操作的命令集。特点:由于所有主要的关系数据库管理系统都支持SQL语言,所有用SQL编写的程序都是可以移植的。(Access,SqlServer等数据库)SQL功能:可以面向数据库执行查询、从数据库取回数据、可在数据库中插入新的纪录、可更新数据库中的数据、可从数据库删除记录、可创建新数据库、可在数据库中创建新表等。其功能可归结为查询、定义、操纵和控制等几个方面:SQL功能常用语句数据查询SELECT数据定义CREATE,DROP数据操纵INSERT,DELETE,UPDATE数据控制GRANT,REVOKESQL和SQLSERVER的区别SQL(structuredquerylanguage)结构化查询语言。它是一种标准,不是一种软件。SQLServer是数据库管理系统的一种它是一种软件,这种软件在遵循SQL这种标准,很多数据库管理软件及开发工具都支持SQL这种标准。Access中Sql查询可在Access中利用查询中的Sql视图编写查询语句,练习、校对Sql查询语句SELECT语句的用法SELECT[DISTINCT]目标列表达式1[AS别名][,目标列表达式2][AS别名],…FROM表名1[,表名2]…[WHERE条件表达式][GROUPBY列名1[HAVING组条件表达式]][ORDERBY列名2[ASC|DESC]];功能从数据库中查询数据,并以表格形式返回查询结果。语法单表查询1查询loginCount表全部记录: SELECT*FROMloginCount查询loginCount表部分字段:SELECT帐号asqq,登录时间asqqtimeFROMloginCount单表查询2where使用查询loginCount表中登录时间超过650的记录SELECT帐号asqq,登录时间asqqtimeFROMloginCountwhere登录时间>650查询loginCount表中qq号码为333的记录SELECTloginCount.帐号ASqq,loginCount.登录时间ASqqtimeFROMloginCountWHERE帐号=‘333’VB中Sql语句书写注意点Sqlstr=“select*fromt_userwhereu_name=‘张三’”“字符串1”&“字符串2”&“字符串3”不建议用+号连接字符串Username=“张三”Sqlstr=“select*fromt_userwhereu_name=‘”&username&“’”1.书写最熟悉的sql语句2.找断点,加双引号,&&断开3.加入vb中表达式4.Msgobxdebug.pringt等

输出sqlstr进行检查

把下面的语句题换成变量的写法:

strsql=“Insertintomytable(username)values(‘张红’)”

第一步:先把张红抹去,在原位置加两个引号

strsql=“Insertintomytable(username)values(‘”“’)”

第二步:在中间添加两个连接符&

strsql=“Insertintomytable(username)values(‘”&&“’)”

第三步:把变量写在两个连接符之间

strsql=“Insertintomytable(username)values(‘”&thename&“’)”多表查询利用where一个数据库中的多个数据表之间一般都存在某种内在联系,它们共同提供有用信息。若一个查询同时涉及两个及以上的表,称之为多表查询或链接查询。两张表间有一个相同的字段,才能进行有效的多表查询。查询时列名前加表名或表别名前辍(as),如果字段在两个表中是唯一的可以不加。删除数据--DELETE语句DELETEFROM表名[WHERE条件]功能DELETE语句的功能为删除表中指定的记录。语法DELETE语句对满足WHERE子句中条件的所有记录执行删除操作。省略WHERE子句,则删除表中全部记录,但表结构仍在,即DELETE语句删除的是表中的数据。应用DELETE语句删除部分记录【例】删除用户名为“lee”的所有记录。DELETEFROMTravelPlanWHEREUserName="lee";分析lee所在两条记录均被删除,记录数由4变为2。数据更新--UPDATE语句UPDATE表名SET字段1=表达式[,字段2=表达式2,……,字段N=表达式N][WHERE条件]功能UPDATE语句的功能是更新表中指定记录中指定字段的值。语法UPDATE语句对指定表中满足WHERE子句中条件的记录进行修改,具体修改内容在SET子句中设定。表达式的值必须与其对应字段的数据类型吻合。UPDATE的操作是不可逆的,即做出的修改是无法撤消的。ADO数据访问技术(一)ADO数据模型(二)Connection对象及应用(三)Command对象及应用(四)Recordset对象及应用

一、ADO对象模型

ADO(ActiveXDataObjects)数据库访问技术,采用OLEDB的数据访问模式。向应用程序提供一个统一的数据访问方法,不仅可以访问Access,SQLServer数据库,还可以访问Excel,文本文件等基于OLEDB之上的对象模型,半酣可以被OLEDB标准接口描述的数据类型。(优点:应用程序移植)1.ADO对象模型组成三个对象成员:

ConnectionCommandRecordset几个集合对象:

Errors

Parameters

Fields

Properties指定连接数据来源发出命令信息从数据源获取所需数据查询命令的返回的记录集访问数据源时所返回的错误信息与命令对象有关的参数记录集中某个字段的信息每个ADO对象都有一组惟一的属性,用来描述或控制对象2.ADO对象基本操作流程(1)初始化COM库,引入ADO库定义文件;(2)用Connection对象连接数据库;(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理;(4)使用完毕后关闭连接释放对象。3.引入ADO库定义文件在VisualBasic程序中使用ADO对象,必须先为当前工程引用ADO的对象库。方法:执行“工程”菜单中“引用”命令,弹出“引用”对话框,如图所示。单击“确定”选择该选项(不同环境下ADO的版本号可能不同)二、Connection对象Connection用来创建到数据库建立连接。1.常用属性ConnectionString属性,指定用于建立连接数据源的信息。

【例】创建到数据库rizhi.accdb的链接。

DimconnAsADODB.Connection

Setconn=newADODB.Connectionconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\rizhi.accdb“

2行代码等同于DimconnAsnewADODB.ConnectionAccess不同版本连接语句Access2003:conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\rizhi.mdb"Access2010:

conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\rizhi.accdb”Mode属性Mode属性,指定Connection对象修改数据的权限。其值如下:常量 说明adModeUnknown默认值。表明权限尚未设置或无法确定adModeRead 只读权限adModeWrite 只写权限adModeReadWrite 读写权限adModeShareDenyRead 禁止其他用户使用读权限打开连接adModeShareDenyWrite 禁止其他用户使用写权限打开连接adModeShareExclusive 禁止其他用户打开连接adModeShareDenyNone 允许其他人以任何权限打开连接State属性State属性,返回Connection对象的状态。其值如下:常量 说明adStateClosed 对象已关闭adStateOpen

对象已打开adStateConnecting

对象正在连接adStateExecuting

对象正在执行命令adStateFetching

正在检索对象的行2.Connection对象的常用方法Open方法,打开到数据源的连接。语法如下:Connection对象.OpenConnectionString,UserID,PassWord,Options

以下参数均为可选项ConnectionString

:包含连接信息的字符串。UserID

:包含建立连接时所使用的用户名称。Password

:字符串,包含建立连接时所用密码。Options

:设置为adConnectAsync,则异步打开连接;

设置为ConnectComplete当连接可用时将调用该事件。Close方法,关闭到数据源的连接。Execute方法,在连接上执行命令。Cancel方法,取消Open或Execute方法的调用如果设置了Connection对象的ConnectionString等属性,Open方法就不需要设置参数了3.Connection对象应用示例【例】使用Connection对象链接到数据库rizhi.accdb。PrivateSubForm_Load()DimconnAsNewADODB.Connectionconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;

DataSource="+App.Path+"\rizhi.accdb"

conn.OpenIfconn.State=adStateOpenThenMsgBox"链接已打开"conn.CloseIfconn.State=adstatecolsedThenMsgBox"链接已关闭"EndSub创建Connection对象conn链接数据库路径打开到数据库的链接判断链接的状态关闭到数据库的链接判断链接的状态四、Recordset对象Recordset对象表示从数据库返回的一系列记录的集合。一个Recordset对象由记录和列(字段)组成。通过Recordset可以对记录及组成记录的列进行各种操作。1.Recordset对象的常用属性(1)ActiveConnection属性,设置或返回Recordset对象所属的Connection对象。(2)AbsolutePosition属性,指定Recordset对象中当前记录的序号位置。(3)BOF属性,若当前的记录位置在第一条记录之前,则返回true,否则返回fasle。

EOF属性,若当前记录的位置在最后的记录之后,则返回true,否则返回fasle。1.Recordset对象的常用属性(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,ValuesAddNew方法为记录集添加新记录后,需使用UpDate将所添加的数据存储到数据库中。(2)Delete方法,删除当前记录或记录组。(3)Move方法,移动Recordset对象中当前记录的位置。(4)MoveFirst、MoveLast、MoveNext和MovePrevious方法,移动到指定Recordset对象中的第一条、最后一条、下一条或上一条记录,使该记录成为当前记录。(5)Requery方法,重新执行对象所基于的查询,更新Recordset对象中的数据。(6)Update方法,保存对Recordset对象当前记录所做修改。CancelUpdate方法,可取消对当前记录修改。字段列表FieldList中字段对应的值2.Recordset对象常用方法Open方法,打开代表基本表、查询的结果或保存的Recordset中记录的游标。其语法如下:Recordset对象.OpenSource,ActiveConnection,CursorType,LockType,Options

以下均为可选项

Source为记录源,可以是SQL语句、表名等;

ActiveConnection指定相应的Connection对象;

CursorType指定打开Recordset对象使用的指针类型。3.Recordset对象应用示例【例】

DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimstrSQLAsStringconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0; DATASource="&App.Path&"\users1.accdb"strSQL="SELECT*FROMusers"conn.OpenSetrs.ActiveConnection=connrs.LockType=adLockOptimisticrs.CursorType=AdOpenKeysetrs.OpenstrSQL增加记录rs.AddNewrs.Fields(1)=Text1rs.Fields(2)=Text2rs.Updateconn.CloseSetconn

Nothing数据有效性检查前一条、后一条按钮代码PrivateSubCommand2_Click()rs.MovePreviousCommand3.Enabled=TrueIfrs.AbsolutePosition=1ThenCommand1.Enabled=FalseCommand2.Enabled=FalseEndIfText1=rs.Fields(0)……Text6=rs.Fields(5)EndSubPrivateSubCommand3_Click()rs.MoveNextCommand1.Enabled=TrueCommand2.Enabled=TrueIfrs.EOFThenCommand3.Enabled=Falsers.MoveLastExitSubEndIfText1=rs.Fields(0)……Text6=rs.Fields(5)EndSub前一条后一条ADO中command对象ADODB对象模型Command对象提交给数据源的命令,传递SQL命令Parameter对象用来向SQL语句传递参数Property对象指明一个ADO对象的属性Command对象简介使用Command对象查询数据库并返回Recordset对象中的记录,以便执行大量操作或处理数据库结构

Command对象用于执行数据库操作命令,使用Command对象的ActiveConection属性同样可以创建一个连接。例如"Activeconection"属性被设置为一个Connection对象的引用,那么Command对象就建立一个新的连接,并使用这个新连接。用Command对象执行一个查询子串,可以返回一个记录集,也可以返回多个记录集,甚至可以不返回记录集。Command对象与RecordSet对象区别Command对象:主要是向SQL语句、StoredProcude传递参数,依靠SQL的强大功能来完成数据库的操作;Command的性能更优越一些,特别是在大量记录添加情况下。RecordSet对象:封装了数据对象、并提供了一系列的方法和属性来简化数据库的编程。复杂数据处理,memo备注字段,

time()PKCommand对象3个重要属性Connection属性设置Command所使用的Connection例:Setcmd.ActiveConnection=connCommandText属性设置对数据源执行SQL语句或存储过程。例:cmd.CommandText="deletefromyonghu

WHERE帐号='xxxxxx'“AdCmdText时,表示包含命令文本,AdCmdTable时,表示包含一个表的名字,AdCmdStoredProc时,表示包含存储过程名。CommandType属性设置指定的CommandText类型例:cmd.CommandType=adCmdText查询字串是一个SQL语句:"adCmdText";查询字串是一个存储过程,"adCmdStoreProc";查询字串是一个表名,"adCmdTable";Command对象操作实例DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimcmdAsNewADODB.Commandconn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论