《用VB开发数据库连接(一)ppt课件.ppt》由会员分享,可在线阅读,更多相关《用VB开发数据库连接(一)ppt课件.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C/SC/SVBVB数据库应用系统开发数据库应用系统开发z数据库应用系统结构数据库应用系统结构zVisual BasicVisual Basic快速入门快速入门z开放数据库连接(开放数据库连接(ODBCODBC)z数据访问接口(数据访问接口(ADOADO)zVBVB数据库编程举例数据库编程举例zVBVB开发数据库应用系统实例分析开发数据库应用系统实例分析开放数据库连接(开放数据库连接(ODBCODBC)zODBCODBC概念概念zODBCODBC的构成的构成z建立建立ODBCODBC数据源数据源 ODBCODBC概念概念zODBC(开放数据库接连,(开放数据库接连,Open DataBase
2、Connectivity)是)是Microsoft公司开发的一套开放公司开发的一套开放的数据库系统应用程序接口标准。的数据库系统应用程序接口标准。 zODBC使得客户端应用不再紧密地依赖于数据库使得客户端应用不再紧密地依赖于数据库管理系统,用户有广泛的挑选余地来选择自己喜管理系统,用户有广泛的挑选余地来选择自己喜欢和熟悉的开发工具。欢和熟悉的开发工具。zODBC使数据库应用程序具有很好的适应性和可使数据库应用程序具有很好的适应性和可移植性,并且具备同时访问多种数据库管理系统移植性,并且具备同时访问多种数据库管理系统的能力。的能力。ODBCODBC的构成的构成v应用程序应用程序v驱动程序管理器驱
3、动程序管理器v驱动程序驱动程序v数据源数据源VB应用程序驱动程序管理器驱动程序管理器数据源1数据源2数据源3数据源4驱动程序管理器的工作驱动程序管理器的工作z驱动程序管理器是驱动程序管理器是WindowsWindows下的应用程序,其主下的应用程序,其主要作用是:要作用是:y安装指定的驱动程序;安装指定的驱动程序;y定义数据源,并把数据源映射到具体的定义数据源,并把数据源映射到具体的ODBCODBC驱驱动程序上动程序上 ;y为每个驱动程序提供为每个驱动程序提供ODBCODBC函数的入口点;函数的入口点;y检查检查ODBCODBC参数的合法性参数的合法性等。等。ODBC驱动程序的具体任务z OD
4、BCODBC应用程序不能直接存取数据库,它将所要执行的操作提应用程序不能直接存取数据库,它将所要执行的操作提交给数据库驱动程序,通过驱动程序实现对数据库的各种操交给数据库驱动程序,通过驱动程序实现对数据库的各种操作,数据库操作结果也通过驱动程序返回给应用程序。作,数据库操作结果也通过驱动程序返回给应用程序。ODBCODBC驱动程序的具体任务有:驱动程序的具体任务有:y建立与数据源的连接;建立与数据源的连接;y向数据源提交向数据源提交SQLSQL请求;请求;y处理查询结果;处理查询结果;y将数据源错误转换为标准错误代码,返回给应用程序;将数据源错误转换为标准错误代码,返回给应用程序;y提交事务的
5、开始请求、完成请求和撤消请求等。提交事务的开始请求、完成请求和撤消请求等。什么是数据源z 数据源数据源是是指任何一种可以通过指任何一种可以通过ODBCODBC连接的数据库管理系统,包括要访问连接的数据库管理系统,包括要访问的数据库和数据库的运行平台(包括数据库管理系统和运行数据库管理的数据库和数据库的运行平台(包括数据库管理系统和运行数据库管理系统的服务器)。系统的服务器)。它可以是它可以是PC平台上的平台上的FoxPro数据库、数据库、Windows 平平台上的台上的SQL Server数据库或数据库或OS/2平台的平台的Oracle数据库等。数据库等。z 数据源名数据源名掩盖了数据库服务器
6、之间的差别,通过定义多个数据源,让每掩盖了数据库服务器之间的差别,通过定义多个数据源,让每个数据源名对应一个数据库管理系统中的指定数据库,这样就可以实现个数据源名对应一个数据库管理系统中的指定数据库,这样就可以实现在应用程序中通过数据源名而不是具体的数据库名访问指数据库的目的。在应用程序中通过数据源名而不是具体的数据库名访问指数据库的目的。建立建立ODBCODBC数据源数据源z可以通过Windows的控制面板可以建立ODBC数据源。 z建立步骤为: zODBC数据源共有三种数据源共有三种类型,第一种是用户数据类型,第一种是用户数据源(用户源(用户DSN),第二种),第二种是系统数据源(系统是系
7、统数据源(系统DSN),第三种是文件数),第三种是文件数据源(文件据源(文件DSN)。)。z用户用户DSN只能用于当前只能用于当前定义此数据源的机器上,定义此数据源的机器上,而且只有定义数据源的用而且只有定义数据源的用户才可以使用;户才可以使用;系统系统DSN可用于当前机器上的所有可用于当前机器上的所有用户;用户;文件文件DSN是将用户是将用户定义的数据源信息保存到定义的数据源信息保存到一个文件中,并可被所有一个文件中,并可被所有安装了相同驱动程序的不安装了相同驱动程序的不同机器上的用户共享。同机器上的用户共享。新建数据源新建数据源数据访问接口(数据访问接口(ADOADO)z访问数据库的几种方
8、式访问数据库的几种方式z一致的数据访问策略一致的数据访问策略z ADO对象模型对象模型zADO数据控件与数据绑定控件数据控件与数据绑定控件 访问数据库的几种方式访问数据库的几种方式z使用数据访问接口使用数据访问接口(对象模型)(对象模型)yActiveX数据对象(数据对象(ADO,ActiveX Data Objects )y远程数据对象(远程数据对象(RDO,Remote Data Objects )y数据访问对象(数据访问对象(DAO,Data Access Objects)z使用控件数据库表记录使用控件数据库表记录 此方法局限性强,处理数据量小。此方法局限性强,处理数据量小。z直接调用直
9、接调用ODBC API(应用程序编程接口)(应用程序编程接口) (Application Programming Interface)编程复杂。)编程复杂。一致的数据访问策略的体系结构一致的数据访问策略的体系结构前前 端端 应应 用用 程程 序序ADOOLE DB提供者提供者 提供者提供者 提供者提供者 提供者提供者 VSAM/ISAME-mail消消息息目录目录服务服务ODBC 提供者提供者 文件文件系统系统关系数据关系数据库库ADOADO对象模型对象模型zADO是面向对象的是面向对象的API,它只需开发者掌握几个,它只需开发者掌握几个简单对象的方法和属性。简单对象的方法和属性。z ADO对
10、象模型中包含了三核心对象:对象模型中包含了三核心对象:Connection、Command和和Recordset。z开发人员可以创建这三个对象并使用这些对象访开发人员可以创建这三个对象并使用这些对象访问数据库。问数据库。z在在ADO对象模型中还有几个其他对象:对象模型中还有几个其他对象:Field、Property、Error和和Parameter,它们是前面三个,它们是前面三个对象的子对象。对象的子对象。这些对象的描述如下:这些对象的描述如下: zConnection对象对象:包含了与数据源连接的信息。:包含了与数据源连接的信息。zCommand对象对象:定义一个:定义一个SQLSQL语句、
11、存储过程等与命语句、存储过程等与命令相关的信息。令相关的信息。zRecordset对象对象:包含了从数据源得到的记录集。:包含了从数据源得到的记录集。zField对象对象:包含了记录集中的某个记录的字段信息。:包含了记录集中的某个记录的字段信息。字段信息包括字段的数据类型、精度和数据范围等。字段信息包括字段的数据类型、精度和数据范围等。zProperty对象对象:ADO对象的属性集。对象的属性集。zParameter对象对象:保存与:保存与Command对象相关的参数。对象相关的参数。zError对象对象:包含了由数据源产生的:包含了由数据源产生的Errors集合中的集合中的扩展的错误信息。由
12、于一个单独的语句会产生一个或扩展的错误信息。由于一个单独的语句会产生一个或多个错误,因此多个错误,因此Errors集合可以同时包括一个和多个集合可以同时包括一个和多个Error对象。对象。ADO对象模型对象模型ConnectionErrorCommandParameterRecordsetFieldPropertyPropertyPropertyPropertyADOADO数据控件与数据绑定控件数据控件与数据绑定控件zADO数据控件是使用数据控件是使用ADO数据对象来快速数据对象来快速建立应用程序和数据源之间的连接,并快建立应用程序和数据源之间的连接,并快速创建数据访问结果记录集的工具。速创建
13、数据访问结果记录集的工具。z由于由于ADO数据控件不具有显示数据的功能,数据控件不具有显示数据的功能,因此要将数据操作结果在用户界面上显示因此要将数据操作结果在用户界面上显示出来,就要靠数据绑定控件来实现。出来,就要靠数据绑定控件来实现。zADO数据控件数据控件z数据绑定控件数据绑定控件ADOADO数据控件数据控件z在在VB的工具箱中添加的工具箱中添加ADO数据控件数据控件zADODC对象的主要属性、方法和事件对象的主要属性、方法和事件zRecordSet对象的主要属性和方法对象的主要属性和方法y RecordSetRecordSet对象的主要属性对象的主要属性y FieldsFields对象
14、属性对象属性y RecordSetRecordSet对象的主要方法对象的主要方法在在VBVB的工具箱中添加的工具箱中添加ADOADO数据控件数据控件ADO数据控件(数据控件(ADODC)ADODC在窗体中的样式在窗体中的样式ADODCADODC对象的主要属性、方法和事件对象的主要属性、方法和事件zADODCADODC对象的主要属性对象的主要属性zADODCADODC对象的主要方法对象的主要方法zADODCADODC对象的主要事件对象的主要事件ADODCADODC对象的主要属性对象的主要属性zConnectionStringConnectionString属性属性 (用于连接数据源)(用于连接数
15、据源)zCommand属性属性yRecordSourceRecordSource属性属性yCommandTypeCommandType属性属性 zRecordsetRecordset属性属性 ConnectionStringConnectionString属性设置步骤属性设置步骤z使用使用ODBC数据资源名称数据资源名称 以建立以建立ODBC数据源时使用数据源时使用z使用连接字符串使用连接字符串 未建立未建立ODBC数据源时使用数据源时使用使用ODBC数据资源名称使用连接字符串RecordSourceRecordSource属性属性z 此属性用于设置此属性用于设置ADO结果集的内结果集的内容,
16、这个内容可容,这个内容可以来自于一张表,以来自于一张表,也可以来自一个也可以来自一个查询语句,也可查询语句,也可以来自一个存储以来自一个存储过程的执行结果。过程的执行结果。z RecordSource属属性的值与性的值与CommandType属性的值有关,属性的值有关,两者协同使用。两者协同使用。CommandTypeCommandType属性属性z 此属性指明命令的类型,即要访问的数据的来源。一般这此属性指明命令的类型,即要访问的数据的来源。一般这个属性和个属性和RecordSource(记录源)属性配合使用。(记录源)属性配合使用。z CommandType属性的取值有如下四个:属性的取值
17、有如下四个:yadCmdUnknown:默认值。表示:默认值。表示RecordSource中的命令类型中的命令类型未知。未知。yadCmdTable:RecordSource属性的内容是一个表名,表示其属性的内容是一个表名,表示其结果集是对此表执行的无条件查询的结果。结果集是对此表执行的无条件查询的结果。yadCmdText:RecordSource属性的内容是一个查询语句文本属性的内容是一个查询语句文本串,表示其结果集是执行此查询语句文本串产生的结果。串,表示其结果集是执行此查询语句文本串产生的结果。yadCmdStoredProc:RecordSource属性的内容是一个存储过属性的内容是
18、一个存储过程名,表示其结果集是执行此存储过程产生的结果。程名,表示其结果集是执行此存储过程产生的结果。z 设置设置CommandType属性的方法参见设置属性的方法参见设置RecordSource部分。部分。CommandTypeCommandType属性设置步骤属性设置步骤RecordsetRecordset属性属性zRecordset属性是属性是ADO数据控件中实现数数据控件中实现数据记录操作的最重要的属性据记录操作的最重要的属性z这个属性本身又是一个对象,也有自己的这个属性本身又是一个对象,也有自己的属性和方法,它直接指向属性和方法,它直接指向ADO对象模型中对象模型中的的Records
19、et对象。对象。z稍后介绍该对象稍后介绍该对象 ADODCADODC对象的主要方法对象的主要方法z ADODC控件最常用的是控件最常用的是Refresh方法。方法。z Refresh方法用于更新方法用于更新ADODC控件属性,使修改后的控件属性,使修改后的ADO数据控件属性生效。数据控件属性生效。z 当修改了当修改了ADODC控件的控件的ConnectionString属性的值时,属性的值时,使用使用Refresh方法会重新连接一次数据库;当修改了方法会重新连接一次数据库;当修改了ADODC控件的控件的RecordSource属性的值时,使用属性的值时,使用Refresh方法会重新执行方法会重
20、新执行RecordSource属性的内容,重属性的内容,重新产生结果集。新产生结果集。z 使用使用Refresh方法的格式为:方法的格式为: ADODC控件名控件名.Refresh ADODCADODC对象的主要事件对象的主要事件z EndOfRecordset事件事件:当在结果集中移动记录指针时,当记录指针超:当在结果集中移动记录指针时,当记录指针超出了结果集的最后一条记录时,触发此事件。出了结果集的最后一条记录时,触发此事件。z Error事件事件:只有在没有执行任何:只有在没有执行任何VB代码而发生了一个数据访问错误时,代码而发生了一个数据访问错误时,才会触发此事件。才会触发此事件。z
21、WillChangeField事件和事件和FieldChangeComplete事件事件:当对结果集中:当对结果集中的一个或多个字段值进行修改前,触发的一个或多个字段值进行修改前,触发WillChangeField事件;当对结事件;当对结果集中的一个或多个字段值修改之后,触发果集中的一个或多个字段值修改之后,触发FieldChangeComplete事事件。件。z WillChangeRecord事件和事件和RecordChangeComplete事件事件:当对结果:当对结果集中的一个或多个记录进行修改前,触发集中的一个或多个记录进行修改前,触发WillChangeRecord事件;当事件;当
22、对结果集中的一个或多个记录修改之后,触发对结果集中的一个或多个记录修改之后,触发RecordChangeComplete事件。事件。z WillMove事件和事件和MoveComplete事件事件:在结果集的当前行记录指针移:在结果集的当前行记录指针移动之前,触发动之前,触发WillMove事件;在结果集的当前行记录指针移动完成后,事件;在结果集的当前行记录指针移动完成后,触发触发MoveComplete事件。事件。RecordSetRecordSet对象的主要属性和方法对象的主要属性和方法z Recordset属性也称为记录集或结果集,用于存放从数属性也称为记录集或结果集,用于存放从数据提供
23、者那里获得的查询结果,这个结果一般存放在客户据提供者那里获得的查询结果,这个结果一般存放在客户端内存中,可以理解为是客户端的游标。端内存中,可以理解为是客户端的游标。z 每个结果集有一个当前行指针,指向正在操作的记录。每个结果集有一个当前行指针,指向正在操作的记录。z 在在VB数据库应用程序中,一般不直接对数据库中的数据数据库应用程序中,一般不直接对数据库中的数据进行操作,而是通过记录集进行的。因此,记录集是进行操作,而是通过记录集进行的。因此,记录集是VB应用程序和数据库之间相互连接的桥梁。应用程序和数据库之间相互连接的桥梁。z 对数据库中数据的操作主要是通过对数据库中数据的操作主要是通过R
24、ecordSet对象完成对象完成的。的。 RecordSetRecordSet对象的主要属性对象的主要属性zBOF:布尔值,如果结果集中记录的当前行指针移到了第一条记:布尔值,如果结果集中记录的当前行指针移到了第一条记录的前边,则此值为真,否则为假。录的前边,则此值为真,否则为假。zEOF:布尔值,如果结果集中记录的当前行指针移到了最后一条:布尔值,如果结果集中记录的当前行指针移到了最后一条记录的后边,则此值为真,否则为假。记录的后边,则此值为真,否则为假。zRecordCount:存放结果集中的记录个数。:存放结果集中的记录个数。zSort:将结果集中的记录按某个字段排序。:将结果集中的记录
25、按某个字段排序。zAbsolutePosition:记录当前行记录在结果集中的顺序号,结果:记录当前行记录在结果集中的顺序号,结果集记录序号从集记录序号从1开始。开始。zActiveCommand:结果集中创建的命令。:结果集中创建的命令。zActiveConnection:结果集中创建的连接。:结果集中创建的连接。zBookmark:结果集中当前行记录的标识号。:结果集中当前行记录的标识号。zFields:结果集中的字段集合。由于一行记录可以包含多个字段,:结果集中的字段集合。由于一行记录可以包含多个字段,因此因此Fields属性是一个数组形式,数组中的每个元素代表一个字段。属性是一个数组形
26、式,数组中的每个元素代表一个字段。FieldsFields对象属性对象属性 zFields属性本身也是一个对象,它直接指向属性本身也是一个对象,它直接指向ADO对对象模型中的象模型中的Fields对象。对象。Fields对象用下述属性来描对象用下述属性来描述结果集字段的信息:述结果集字段的信息:yFields.Name:字段名称。:字段名称。yFields.Value:字段的值。:字段的值。yFields.OrdinalPosition:字段在:字段在Fields集合中的顺序。集合中的顺序。yFields.Type:字段的数据类型。:字段的数据类型。yFields.Size:字段的最大字节数。
27、:字段的最大字节数。yFields.SourceTable:字段来自的表:字段来自的表yFields.SourceField:字段来自的表中的列:字段来自的表中的列RecordSetRecordSet对象的主要方法对象的主要方法 RecordSet对象的方法是实现结果集操作的关对象的方法是实现结果集操作的关键。键。z Move方法组方法组 z AddNew方法方法 z Update方法方法 z Delete方法方法 z CancelUpdate方法方法 z Find方法方法Move方法组zMove方法组就是实现在结果集中通过移动记录行方法组就是实现在结果集中通过移动记录行指针而浏览数据的方法。
28、指针而浏览数据的方法。zMove方法组中又包括四个相应的移动指针的方法。方法组中又包括四个相应的移动指针的方法。yMoveFirst方法:将当前行记录指针移到结果集中的第方法:将当前行记录指针移到结果集中的第一行。一行。yMovePrevious方法:将当前行记录指针向前移动一行。方法:将当前行记录指针向前移动一行。yMoveNext方法:将当前行记录指针向后移动一行。方法:将当前行记录指针向后移动一行。yMoveLast方法:将当前行记录指针移到结果集中的最方法:将当前行记录指针移到结果集中的最后一行。后一行。AddNew方法zAddNew方法用于在结果集中添加一个新记录。方法用于在结果集中
29、添加一个新记录。z注意,当使用注意,当使用AddNew方法时,实际上只是在内方法时,实际上只是在内存中开辟了一个新记录的缓冲区,缓冲区中的初存中开辟了一个新记录的缓冲区,缓冲区中的初始值均为控,新输入的记录被保存在这个缓冲区始值均为控,新输入的记录被保存在这个缓冲区中。要使缓冲区中新输入的记录永久地保存到数中。要使缓冲区中新输入的记录永久地保存到数据库中,还必须使用据库中,还必须使用Update方法,或者对当前方法,或者对当前行记录指针作一个移动操作。行记录指针作一个移动操作。UpdateUpdate方法方法 zUpdate方法将新记录缓冲区中的记录或者对当前记录的修改真正写到数据库中,使新添
30、加的记录或修改后的结果被永久保存在数据库中。DeleteDelete方法方法 zDelete方法删除结果集中当前行记录指针方法删除结果集中当前行记录指针所指的记录,并且这个删除是直接对数据所指的记录,并且这个删除是直接对数据库数据操作的,删除后的数据不可恢复。库数据操作的,删除后的数据不可恢复。z因此,在使用此方法删除数据前,最好提因此,在使用此方法删除数据前,最好提示用户是否真的要删除数据,以避免由于示用户是否真的要删除数据,以避免由于误操作而造成数据丢失。误操作而造成数据丢失。CancelUpdateCancelUpdate方法方法 zCancelUpdate方法用于取消新添加的记方法用于
31、取消新添加的记录或对当前记录所做的修改。录或对当前记录所做的修改。z注意,此方法应在调用注意,此方法应在调用Update方法之前调方法之前调用,调用了用,调用了Update方法之后的修改是不能方法之后的修改是不能撤销的。撤销的。z另外需要注意的是,如果没有添加新记录,另外需要注意的是,如果没有添加新记录,也没有对当前记录进行任何修改,则调用也没有对当前记录进行任何修改,则调用CancelUpdate方法将产出错误。方法将产出错误。FindFind方法方法z Find方法用于在当前结果集中查找满足条件的记录。如果方法用于在当前结果集中查找满足条件的记录。如果结果集较大,则可以使用此方法在结果集快
32、速定位找到满结果集较大,则可以使用此方法在结果集快速定位找到满足要求的记录。足要求的记录。Find方法的格式为:方法的格式为: ADODC控件名控件名.Recordset. Find(“查找条件表达式查找条件表达式”)z “查找条件表达式查找条件表达式”中可以包含比较运算符、逻辑运算符中可以包含比较运算符、逻辑运算符和和Like查找符。例如:查找年龄在查找符。例如:查找年龄在20到到25之间的学生:之间的学生: Find(“Sage = 20 AND Sage = 25”)数据绑定控件数据绑定控件z数据绑定控件概念数据绑定控件概念z数据绑定控件分类数据绑定控件分类z数据绑定控件的主要属性数据绑
33、定控件的主要属性zDataGrid控件控件 数据绑定控件概念数据绑定控件概念z数据绑定实际上就是将结果集中的数据同应用程数据绑定实际上就是将结果集中的数据同应用程序界面中的控件联系起来,通过这些界面上的控序界面中的控件联系起来,通过这些界面上的控件将结果集中的数据显示给用户。能够实现将结件将结果集中的数据显示给用户。能够实现将结果集中的数据显示出来的功能的控件就称为果集中的数据显示出来的功能的控件就称为数据数据绑定控件绑定控件。z数据绑定控件不但可以实现将结果集中的数据显数据绑定控件不但可以实现将结果集中的数据显示出来,而且用户还可以通过这些控件实现对数示出来,而且用户还可以通过这些控件实现对
34、数据库数据的增、删、改操作。据库数据的增、删、改操作。数据绑定控件分类数据绑定控件分类z 标准控件标准控件 y常用的有:常用的有:TextBox、CheckBox、ListBox、ComboBox等等 。y这些控件只用于显示结果集中的一个列的值,因此,这些控件只用于显示结果集中的一个列的值,因此,除了需要设置这些控件的除了需要设置这些控件的DataSource属性,还需要设属性,还需要设置这些控件的置这些控件的DataField属性,以确定绑定到结果集中属性,以确定绑定到结果集中的哪个列。的哪个列。 z ActiveX控件控件 y主要有:主要有:DataCombo、DataList、DataG
35、rid、MSHFGrid、Microsoft Chart等等 。数据绑定控件的主要属性数据绑定控件的主要属性z数据绑定控件主要通过两个属性来实现数据绑定,这两个属性是:DataSource和DataField属性。zDataSource属性用于指定要绑定的数据源,一般其值为ADO数据控件的名称。一个数据绑定控件在一个时刻只能连接一个数据源。zDataField属性用于指定控件要显示的结果集中的字段,其值为结果集中的列名。一个控件在一个时刻只能绑定到一个字段。 DataGridDataGrid控件控件z添加DataGrid控件到工具箱中z DataGrid控件应用举例添加添加DataGridDa
36、taGrid控件到工具箱中控件到工具箱中DataGridDataGrid控件控件DataGridDataGrid控件应用举例控件应用举例z假设在窗体假设在窗体Form1Form1中已设置好了一个中已设置好了一个ADO数据控数据控件(名字为件(名字为Adodc1),并且连接的数据源为),并且连接的数据源为SQL Server中的中的“学生管理数据库学生管理数据库”中的中的“Student”表。表。z在窗体在窗体Form1Form1添加一添加一DataGrid控件(名字为控件(名字为DataGrid1),),其其DataSource属性设置为属性设置为Adodc1。z执行程序显示结果为执行程序显示结果为Student表表。 DataGrid1DataGrid1控件绑定控件绑定Adodc1Adodc1控件控件在在Form1Form1中添加中添加DataGrid1DataGrid1控件控件执行结果执行结果