【教学课件】第9章数据库访问.ppt
Visual Basic Visual Basic 程序设计教程程序设计教程第第9章章 数数据据库访问 Visual Basic 程序程序设计教教程程 Visual Basic Visual Basic程序设计教程程序设计教程本章内容安排本章内容安排关系数据关系数据库及其及其应用用n关系数据库概述关系数据库概述nSQL及其应用及其应用利用利用ADO控件控件访问数据数据库利用利用ADO对象象访问数据数据库 Visual Basic Visual Basic程序设计教程程序设计教程关系数据关系数据库库概述概述关系数据关系数据库n数据表数据表F字段字段F记录记录F主键主键n数据库操作数据库操作投影投影合并合并 Visual Basic Visual Basic程序设计教程程序设计教程SQL 及其及其应应用用SQL是通用的数据是通用的数据库语库语言,几乎言,几乎为为所有的关系数据所有的关系数据库库管理系管理系统统所支持。所支持。SQL可用来可用来编编写写查询查询或操作数据或操作数据库库的命令,在数据的命令,在数据库库管理系管理系统统的的驱动驱动下下实实施施对对数据数据库库的一切的一切访问访问(创创建、建、维护维护和和查询查询)。)。Visual Basic Visual Basic程序设计教程程序设计教程SQL 及其及其应应用用对数据数据库的操作的操作n插入记录插入记录n删除记录删除记录n修改记录修改记录n查询数据查询数据 Visual Basic Visual Basic程序设计教程程序设计教程SQL 及其及其应应用用对数据数据库的操作的操作n插入记录插入记录insert into Employees (工号工号,姓名姓名,所属部门所属部门,工资工资)values(1201,吴昊吴昊,市场部市场部,3500)n删除记录删除记录n修改记录修改记录n查询数据查询数据 Visual Basic Visual Basic程序设计教程程序设计教程SQL 及其及其应应用用对数据数据库的操作的操作n插入记录插入记录n删除记录删除记录delete from Employees where 工号工号=1201n修改记录修改记录n查询数据查询数据 Visual Basic Visual Basic程序设计教程程序设计教程SQL 及其及其应应用用对数据数据库的操作的操作n插入记录插入记录n删除记录删除记录n修改记录修改记录update Employees set 工资工资=工资工资*1.2 where 工号工号=1201n查询数据查询数据 Visual Basic Visual Basic程序设计教程程序设计教程SQL 及其及其应应用用对数据数据库的操作的操作n插入记录插入记录n删除记录删除记录n修改记录修改记录n查询数据查询数据select 姓名姓名,所属部门所属部门,工资工资 from Employees where 所属部门所属部门=市场部市场部 Visual Basic Visual Basic程序设计教程程序设计教程本章内容安排本章内容安排关系数据关系数据库及其及其应用用利用利用ADO控件控件访问数据数据库nADO控件控件nDataGrid控件控件nADO控件的操作控件的操作nDataGrid控件的操作控件的操作利用利用ADO对象象访问数据数据库 Visual Basic Visual Basic程序设计教程程序设计教程ADO 技技术简术简介介在在 Visual Basic 程序中,并不能直接使用程序中,并不能直接使用 SQL命令。命令。ADO 技技术术是是访问访问数据数据库库的最佳途径。的最佳途径。Microsoft 既提供了既提供了 ADO 控件、也提供了没有控件、也提供了没有界面的界面的 ADO 对对象用于象用于创创建数据建数据库应库应用程序。用程序。Visual Basic Visual Basic程序设计教程程序设计教程ADO 控件和控件和 DataGrid 控件控件第一个任第一个任务:把数据:把数据库中的数据表按照表格的形式中的数据表按照表格的形式显示在示在Form窗体中。窗体中。完成完成这个任个任务既要使用既要使用 ADO 控件,又要使用控件,又要使用DataGrid 控件。控件。nADO 控件是提供数据的数据源控件。它从数据库中查控件是提供数据的数据源控件。它从数据库中查询并返回有关数据(称为记录集)。询并返回有关数据(称为记录集)。nDataGrid 控件是利用数据的绑定控件,它能使数据按控件是利用数据的绑定控件,它能使数据按表格的形式显示出来。表格的形式显示出来。Visual Basic Visual Basic程序设计教程程序设计教程ADO 控件和控件和 DataGrid 控件控件向工具箱添加向工具箱添加ADO控件和控件和DataGrid控件控件n从【工程】菜单里选择【组件从【工程】菜单里选择【组件】,显示【组件对话框】,显示【组件对话框】;】;n在在这个对话框中选择这个对话框中选择Microsoft ADO Data Control 6.0选项;选项;n再选择再选择Microsoft DataGrid Control 6.0选项;选项;n最后最后,关闭这个对话框,关闭这个对话框,ADO数据控件和数据控件和DataGrid绑绑定控件即进入工具箱中。定控件即进入工具箱中。Visual Basic Visual Basic程序设计教程程序设计教程ADO 控件和控件和 DataGrid 控件控件设设置置 ADO 数据控件,数据控件,使使其成其成为为数据源。数据源。主要在属主要在属性性对话框中框中设置以下属性:置以下属性:nConnectionString 属性,设置为提供数据库信息的属性,设置为提供数据库信息的连接字符串。连接字符串。nRecordSource 属性,设置为属性,设置为SQL的的select命令或存命令或存储过程名称。同时应指定命令类型。储过程名称。同时应指定命令类型。把把 DataGrid 控件控件绑绑定到数据源定到数据源 ADO 控件控件。主主要要设置其一个属性:置其一个属性:nDataSource 属性,将其设定为属性,将其设定为 ADO 控件即可。控件即可。Visual Basic Visual Basic程序设计教程程序设计教程ADO 控件的操作控件的操作主要有以下主要有以下4种操作:种操作:n使记录指针移到第一条记录;使记录指针移到第一条记录;n使记录指针移到上一条记录;使记录指针移到上一条记录;n使记录指针移到下一条记录;使记录指针移到下一条记录;n使记录指针移到最后一条记录。使记录指针移到最后一条记录。Visual Basic Visual Basic程序设计教程程序设计教程DataGrid 控件的操作控件的操作PageUp键和和PageDown键:可在:可在记录集中前后集中前后翻翻页。光光标上、下上、下键:可从一条:可从一条记录移到另一条移到另一条记录。使。使用窗口右用窗口右边的垂直的垂直滚动条可上下翻看条可上下翻看记录。光光标左、右左、右键:可从一个字段移到另一个字段。当:可从一个字段移到另一个字段。当然也可以用鼠然也可以用鼠标直接点直接点选某个字段(某个字段(单元格)。元格)。当当鼠鼠标定位在列分界定位在列分界线上并出上并出现伸伸缩竖线时,按住,按住鼠鼠标左左键,拖,拖动伸伸缩竖线可可扩大或减小列的大或减小列的宽度。度。Visual Basic Visual Basic程序设计教程程序设计教程DataGrid 控件的主要属性控件的主要属性AllowAddNew:设为True时,当光,当光标移到最后移到最后时会添加一条新会添加一条新记录。AllowDelete:设为True时,可按,可按键盘上的上的Del或或Delete 键删除当前除当前记录。AllowUpdate:设为True,则当移当移动记录指指针时,对前条前条记录所做的修改将会被保存。所做的修改将会被保存。设为False,可防止修改。,可防止修改。DataSource:将其:将其设置置为某个数据源(某个数据源(ADO数数据控件、或后面要介据控件、或后面要介绍的的Recordset对象),即象),即可按表格的形式可按表格的形式显示其中的数据。示其中的数据。Visual Basic Visual Basic程序设计教程程序设计教程本章内容安排本章内容安排关系数据关系数据库及其及其应用用利用利用ADO控件控件访问数据数据库利用利用ADO对象象访问数据数据库n连接到数据库连接到数据库n操作数据库操作数据库n利用查询结果利用查询结果 Visual Basic Visual Basic程序设计教程程序设计教程利用利用ADO对对象象访问访问数据数据库库我我们需要更灵活地控制需要更灵活地控制对数据数据库的的访问。n对数据库的不同访问,其实可以共享一个数据库连接,对数据库的不同访问,其实可以共享一个数据库连接,而不需要为每个查询都建立一个数据库连接。而不需要为每个查询都建立一个数据库连接。n当不需要某个查询时,相应的对象可以随时关闭并释放,当不需要某个查询时,相应的对象可以随时关闭并释放,不会始终占用着系统资源。不会始终占用着系统资源。实际开开发都要使用都要使用ADO对象。当然,使用象。当然,使用ADO对象,意味着象,意味着编程人程人员需要需要编写更多的代写更多的代码。Visual Basic Visual Basic程序设计教程程序设计教程利用利用ADO对对象象访问访问数据数据库库ADO基本的基本的对象有三个,代表了象有三个,代表了访问数据数据库的三的三个步个步骤:1.连接数据库。由连接数据库。由Connection对象负责。对象负责。2.访问操作数据库。由访问操作数据库。由Command对象负责。对象负责。3.查询操作的结果,由查询操作的结果,由Recordset对象表示。对象表示。Visual Basic Visual Basic程序设计教程程序设计教程利用利用ADO对对象象访问访问数据数据库库在使用在使用 ADO 对象之前,需要在自己的工程中添加象之前,需要在自己的工程中添加对 ADODB 对象象库的引用,否的引用,否则,无法使用任何,无法使用任何ADO 对象。象。方法是:方法是:n展开菜单展开菜单【工程工程】【引用引用】;n在引用对话框中,找到并选择在引用对话框中,找到并选择“Microsoft ActiveX Data Objects 2.x Library”。Visual Basic Visual Basic程序设计教程程序设计教程连连接到数据接到数据库库用用Connection对象象连接到数据接到数据库。步。步骤如下:如下:1.创建创建Connection对象对象2.设置设置ConnectionString属性属性3.调用调用Open方法方法 Visual Basic Visual Basic程序设计教程程序设计教程连连接到数据接到数据库库用用Connection对象象连接到数据接到数据库。步。步骤如下:如下:1.创建创建Connection对象对象1.Dim con As ADODB.Connection2.Set con=new ADODB.Connection2.设置设置ConnectionString属性属性3.调用调用Open方法方法 Visual Basic Visual Basic程序设计教程程序设计教程连连接到数据接到数据库库用用Connection对象象连接到数据接到数据库。步。步骤如下:如下:1.创建创建Connection对象对象2.设置设置ConnectionString属性属性1.con.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:dbGoods.mdb3.调用调用Open方法方法 Visual Basic Visual Basic程序设计教程程序设计教程连连接到数据接到数据库库用用Connection对象象连接到数据接到数据库。步。步骤如下:如下:1.创建创建Connection对象对象2.设置设置ConnectionString属性属性1.con.ConnectionString=Provider=SQLOLEDB;2.Data Source=(local);3.Initial Catalog=Northwind;4.Integrated Security=SSPI3.调用调用Open方法方法 Visual Basic Visual Basic程序设计教程程序设计教程连连接到数据接到数据库库用用Connection对象象连接到数据接到数据库。步。步骤如下:如下:1.创建创建Connection对象对象2.设置设置ConnectionString属性属性3.调用调用Open方法方法1.con.Open Visual Basic Visual Basic程序设计教程程序设计教程连连接到数据接到数据库库Dim con As New ADODB.ConnectionPrivate Sub Form_Load()On Error GoTo Handle con.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:dbGoods.mdb con.Open MsgBox 连接成功接成功 Exit SubHandle:MsgBox 连接失接失败End Sub Visual Basic Visual Basic程序设计教程程序设计教程连连接到数据接到数据库库当此当此连接不再需要接不再需要时,可以,可以调用用Close方法将其关方法将其关闭,然后,然后释放。放。ncon.Close关闭关闭nSet con=Nothing释放释放 Visual Basic Visual Basic程序设计教程程序设计教程操作操作访问访问数据数据库库ADO 的的 Command 对对象表示象表示对对数据数据库库的操作命的操作命令。令。通通过过Command对对象,既可以象,既可以进进行数据行数据库库各种各种对对象的定象的定义义,如建立数据表、建立各种,如建立数据表、建立各种约约束等,也可束等,也可以以对对数据数据库库中的数据中的数据进进行行诸诸如添加、如添加、删删除、修改及除、修改及查询查询等操作。等操作。Visual Basic Visual Basic程序设计教程程序设计教程操作数据操作数据库一般按以下方式一般按以下方式进行:行:n创建创建Command对象对象n设置设置CommandType属性属性n设置设置CommandText属性属性n调用调用Execute方法方法 Visual Basic Visual Basic程序设计教程程序设计教程操作数据操作数据库一般按以下方式一般按以下方式进行:行:n创建创建Command对象对象Dim com As New ADODB.CommandSet com.ActiveConnection=conn设置设置CommandType属性属性n设置设置CommandText属性属性n调用调用Execute方法方法 Visual Basic Visual Basic程序设计教程程序设计教程操作数据操作数据库一般按以下方式一般按以下方式进行:行:n创建创建Command对象对象n设置设置CommandType属性属性com.CommandType=AdCmdTextn设置设置CommandText属性属性n调用调用Execute方法方法 Visual Basic Visual Basic程序设计教程程序设计教程操作数据操作数据库一般按以下方式一般按以下方式进行:行:n创建创建Command对象对象n设置设置CommandType属性属性n设置设置CommandText属性属性com.CommandText=delete Goods where 工工号号=1201n调用调用Execute方法方法 Visual Basic Visual Basic程序设计教程程序设计教程操作数据操作数据库一般按以下方式一般按以下方式进行:行:n创建创建Command对象对象n设置设置CommandType属性属性n设置设置CommandText属性属性n调用调用Execute方法方法com.Execute Visual Basic Visual Basic程序设计教程程序设计教程利用利用查询结查询结果果Recordset 对象表示的是从数据象表示的是从数据库中中查询的的结果果记录的集合,并支持的集合,并支持对其中的数据其中的数据进行各种操行各种操作或作或处理。理。使用使用Recordset对象的一般方式象的一般方式为:n创建对象创建对象n调用调用Open方法方法 Visual Basic Visual Basic程序设计教程程序设计教程利用利用查询结查询结果果Recordset 对象表示的是从数据象表示的是从数据库中中查询的的结果果记录的集合,并支持的集合,并支持对其中的数据其中的数据进行各种操行各种操作或作或处理。理。使用使用Recordset对象的一般方式象的一般方式为:n创建对象创建对象Dim rst As ADODB.Recordsetset rst=New ADODB.Recordsetn调用调用Open方法方法 Visual Basic Visual Basic程序设计教程程序设计教程Recordset.Openrst.Open Source,ActiveConnection,CursorType,LockType,Options Sourcen可为可为Command对象、对象、SQL语句、表名、存储过程名。语句、表名、存储过程名。n建议使用建议使用Command对象,这样就不用设置后面参数对象,这样就不用设置后面参数Options。Visual Basic Visual Basic程序设计教程程序设计教程Recordset.Openrst.Open Source,ActiveConnection,CursorType,LockType,Options ActiveConnectionn用于指定所属的用于指定所属的 Connection 对象。对象。Visual Basic Visual Basic程序设计教程程序设计教程Recordset.Openrst.Open Source,ActiveConnection,CursorType,LockType,Options CursorType:用于:用于设置游置游标类型。型。nadOpenForwardOnly:仅向前游标。:仅向前游标。nadOpenKeyset:键集游标。只对更改敏感。:键集游标。只对更改敏感。nadOpenDynamic:动态游标。最敏感。:动态游标。最敏感。nadOpenStatic:静态游标。不敏感。:静态游标。不敏感。Visual Basic Visual Basic程序设计教程程序设计教程Recordset.Openrst.Open Source,ActiveConnection,CursorType,LockType,Options LockType:用于:用于设置置锁定定类型。型。nadLockReadOnly:只读。:只读。nadLockPessimistic:保守式记录锁定。:保守式记录锁定。nadLockOptimistic开放式记录锁定。开放式记录锁定。nadLockBatchOptimistic开放式批更新。开放式批更新。Visual Basic Visual Basic程序设计教程程序设计教程Recordset.Openrst.Open Source,ActiveConnection,CursorType,LockType,Options Options:用于指明参数:用于指明参数Source的的类别。nadCmdText:SQL命令文本命令文本nadCmdTable:数据表名称:数据表名称nadCmdStoredProc:存储过程名称:存储过程名称 Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象移移动记录动记录指指针针包括包括4个移个移动方法,分方法,分别是:是:nMoveFirst:移到第一条记录:移到第一条记录nMovePrevious:移到上一条记录:移到上一条记录nMoveNext:移到下一条记录:移到下一条记录nMoveLast:移到最后一条记录:移到最后一条记录 Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象移移动记录动记录指指针针当移当移动记录指指针时,需要随,需要随时判断指判断指针的状的状态,有,有以下两个属性:以下两个属性:nBOF:为:为True时,表示指针在向前移动时,超过了第时,表示指针在向前移动时,超过了第一条记录的位置。一条记录的位置。nEOF:为:为True时,表示指针在向后移动时,超过了最时,表示指针在向后移动时,超过了最后一条记录的位置。后一条记录的位置。Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewDeleteUpdateUpdateBatchFind criteria,Skip,Direction,start Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewn该方法向该方法向Recordset对象中添加一条新记录,并使新记对象中添加一条新记录,并使新记录成为当前记录。录成为当前记录。DeleteUpdateUpdateBatchFind criteria,Skip,Direction,start Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewDeleten该方法会删除该方法会删除Recordset对象中的当前记录。对于立即对象中的当前记录。对于立即更新模式,将在数据库中立即删除。更新模式,将在数据库中立即删除。UpdateUpdateBatchFind criteria,Skip,Direction,start Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewDeleteUpdaten把把Recordset对象中已有变化的数据更新到数据库中。对象中已有变化的数据更新到数据库中。用于立即更新模式。用于立即更新模式。UpdateBatchFind criteria,Skip,Direction,start Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewDeleteUpdateUpdateBatchn把把Recordset对象中已有变化的数据更新到数据库中。对象中已有变化的数据更新到数据库中。用于批更新模式。用于批更新模式。Find criteria,Skip,Direction,start Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewDeleteUpdateUpdateBatchFind criteria,Skip,Direction,startn从从Recordset 中搜索满足指定条件的记录。如果找到,中搜索满足指定条件的记录。如果找到,则找到的记录成为当前记录,否则指针状态为则找到的记录成为当前记录,否则指针状态为BOF或或EOF(取决于搜索的方向)。(取决于搜索的方向)。nSkip:跳过的记录数。跳过的记录数。Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewDeleteUpdateUpdateBatchFind criteria,Skip,Direction,startnDirection 用于指定搜索的方向。用于指定搜索的方向。adSearchForward:从第一条向最后一条;:从第一条向最后一条;adSearchBackward:从最后一条向第一条。:从最后一条向第一条。Visual Basic Visual Basic程序设计教程程序设计教程Recordset 对对象象操作数据操作数据AddNewDeleteUpdateUpdateBatchFind criteria,Skip,Direction,startnStart 用于指定搜索的基准位置。用于指定搜索的基准位置。adBookmarkCurrent:当前位置(默认):当前位置(默认)adBookmarkFirst:第一条记录:第一条记录adBookmarkLast:最后一条记录:最后一条记录 Visual Basic Visual Basic程序设计教程程序设计教程本章小本章小结结 Visual Basic Visual Basic程序设计教程程序设计教程练习练习书书上本章后的上本章后的编编程程题题:1和和2。Visual Basic Visual Basic 程序设计教程程序设计教程Good Bye