基于VB的ADO技术应用与研究*

2017-12-07 06:17
菏泽学院学报 2017年5期
关键词:窗体数据表控件

许 莹

(江苏财会职业学院信息系,江苏 连云港 222000)

基于VB的ADO技术应用与研究*

许 莹

(江苏财会职业学院信息系,江苏 连云港 222000)

介绍并分析了VB中ADO技术的体系结构和分层对象模型,详细描述了VB中使用ADO访问数据库的两种不同的方法,最后通过超市管理系统具体实现了在VB中使用ADO连接数据库的功能.

VB;ADO;数据库

引言

VB是微软公司出品的可视化编程工具,它源自于Basic编程语言,可以轻易的使用DAO、RDO、ADO连接数据库,并支持对Access、dBase、SQL、Oracle等数据库的连接,甚至可以操作Excel表格,Word等文本编辑软件.SQL Server是微软推出的关系数据库管理系统,数据管理功能十分强大,其具有数据稳定、安全和存储高速等特点,因而被广泛应用于各大数据库管理系统中.利用VB的ADO技术开发数据库,是现在常用的开发数据库应用系统的技术手段.

1 ADO概述

ADO是继DAO和RDO之后出现的数据库访问技术,它克服了DAO的对SQL Server、Oracle等非MDB文件格式的数据库访问速度会降低,以及RDO的访问不稳定问题的缺点,并继承了二者的优点,其封装并实现了OLE DB(Objects link and Embedding Database,对象链接与嵌入式数据库)的所有功能.ADO既适合访问Oracle、Access、SQL Sever等数据库应用程序,也可应用在图形文件、文本以及Excel表格等数据文件中.具有速度高、使用方便、内存之处低和磁盘空间占用少等优点,使其成为当前数据库开发的主流技术.

1.1基于ADO的应用系统体系结构

图1为ADO的应用系统体系结构,是属于处理应用程序调用的中间层,位于应用程序和OLE DB之间.由于数据库的种类繁多,各种数据库提供的访问方法千差万别,数据库管理人员就需要掌握不同的数据库管理语言,这带来很大的学习成本.为了能够提供一种统一的数据库访问方法,微软提出了统一的数据访问策略UDA,其策略是一个数据源对应所有的数据,OLE DB对数据进行过滤,将不同格式的数据转换为统一格式,形成了统一的接口,为应用程序访问不同的数据类型提供了标准的方法.

图1 基于ADO的应用系统体系结构

ADO与OLE DB实际上是同一个技术,但其表现形式略有不同,ADO提供的是一个对象模型,而OLE DB提供的是通过COM接口的底层数据接口,ADO简化了应用程序从OLE DB中获取数据的过程,其将OLE DB中获取数据的COM接口封装成API接口函数,使用时直接调用API接口,而无需考虑COM接口的工作工程,简化了OLE DB的模型.

1.2ADO的对象模型

ADO的对象模型具有层次结构,如图2所示,其主要由三个主对象组成,分别是Connection、Command和Recordset,三个主对象中分别由四个对象集合组成,分别是Errors、Parameters、Fields和Properties.Connection对象主要负责与需要连接的数据源建立连接;Command对象中包含访问数据源所需要的命令;Recordset对象用于存放在结果集中的记录;Parameter对象用于参数化查询,查询与Command对象相关的参数;Property对象是ADO对象的属性;Field对象是Recordset对象的一列,包含了记录集中某个记录的字段信息.ADO中最常用的是Connection对象和Recordset对象,这两个对象可以完成大部分的数据库操作.Recordset中常用的方法是:Close方法是关闭记录集;Delete方法是删除当前的记录;AddNew方法是在记录中添加一个新纪录;Move方法是将当前的记录移动到其他位置,Update方法可以更新记录集;Open方法是打开一个已建立的记录集.

图2 ADO分层对象结构模型

1.3ADO数据控件

ADO数据控件是一个ActiveX控件,默认的VB中时需要手动添加才能使用的.ADO数据控件的属性有:ConnectionString属性,其作用是建立应用程序与数据源的连接,不同的数据源要通过不同的OLE DB数据访问接口,通过Provider参数指定需要使用的OLE DB接口,Data Source参数指定需要指向的数据库文件,密码和数据库用户名等信息.CommandType属性需要和RecordSource属性一起配合使用,其主要作用是指明命令的类型.RecordSource属性,用于设置ADO记录集的内容和来源,其中,根据CommandType中的属性取值不同,对应的ADO记录集的类型是不同的,比如CommandType属性的取值是adCmdText,则RecordSource中的属性内容是查询语句的文本串,如果CommandType属性取值为adCmdTable,那么RecordSource的属性内容为一个表名.RecoudSet属性本身又是一个对象,又被成为记录集.需要注意的是,在改变ADO数据控件的属性时,改变后属性不是立即生效的,需要通过Refresh方法进行生效.

2 基于ADO的两种访问数据库的方式

2.1基于ADO数据控件访问数据库

此种方式采用了创建数据库连接向导的方式,其步骤如下所示:

1)添加ADO数据控件到工具箱,并将ADO数据控件对象放到窗体中,并命名为Ado1;

2)配置Ado1的Connection String属性,用于建立与数据库的连接,格式分为两种,一种是采用OLE DB的程序连接串,一种是采用ODBC数据源testDSN连接串;

3)配置Ado1的RecordSource属性,如设置RecordSource的“Command Type”为“adCmdText”,“Command Text(SQL)”为“select * from admin where id like ‘21*’”,表示从数据库的admin数据表中返回字段id的前两位为“21”的所有记录;

4)将Ado1控件与TableList控件绑定,将其DataSource属性设置为Ado1实现二者的绑定.

2.2基于ADO对象的数据库访问

此种方式需要先引用ADO对象库,即“Microsoft ActiveX Data Object 2.8 library”,如图3所示,其步骤如下所示:

图3 引用ADO对象库

1)打开“工程”菜单下的“引用”对话框,并选择ADO对象库.

2)通过Dim <对象名> As New ADODB.Connection,定义连接对象,然后设置连接数据库字符串ConnectionString属性,该属性用于配置数据库的各项参数信息.

3)调用Open方法打开数据库,<对象名>.Open[ConnectionString],[ID],[name].

4)利用命令集对象或者记录集对象操作数据表.

5)访问结束后,对连接对象和记录集进行关闭,释放内存空间.

3 VB访问SQL Server数据库实例

3.1数据库表设计

在SQL Server 2008中建立超市管理系统数据库,添加user表来存放超市管理员的基本信息.其基本数据包括用户名、密码和用户级别,其中用户级别为一般管理人员和系统管理人员两类,user表的结构如图4所示.

图4 user表结构

3.2系统实现

在VB中,新建SM_Admin工程,并加入公共模块Module1,并在用户窗体界面设计用户登录界面如图5所示.此界面中,如果用户输入正确的用户名和密码,系统会跳到首页显示,表示用户登录成功;如果用户输入错误的用户名或密码,则系统会保留此页面,并提示用户错误,请重新输入信息.

图5 超市管理系统登录界面

在系统中添加用户窗体useradmin.frm,此窗体用于对系统中的用户进行添加、删除、修改等操作,此窗体中的内容需要和SQL数据库进行连接,所以需要用到ADO Data数据控件,结合一个DataGrid控件进行数据输出显示,以及四个命令按钮组成,窗体界面如图6所示

图6 useradmin窗体界面设计

设置ADO Data控件Ado1的ConnectionString属性为“DSN = SM”即连接SM数据库,RecordSource属性设置为“Select * from admin”,即为查询admin数据表中的数据.然后将DataGrid控件的DataSource属性设置为Ado1,并点击鼠标右键选择“检索字段”选项,完成控件与数据表的数据绑定,这样就可以在DataGrid控件上显示SM数据库中的user数据表中的记录和字段,并对user数据表进行增删改查的操作,不需要编写代码就可以对数据库进行操作.

窗体中四个按钮分别用于对admin数据表的添加、修改、删除和返回首页等操作.设置系统用户界面窗体如图7所示.

图7 设置系统用户

点击添加按钮,然后在“用户名”和“口令”列输入要添加的新用户信息.然后选择用户级别为“一般操作员”,然后再次点击添加按钮,系统会将新建的用户信息添加到user数据表中,并显示在设置系统用户界面DataGrid控件中,如图8所示.从而通过ADO完成了应用程序和数据库的连接.

图8 添加系统管理员界面

4 结束语

通过ADO连接超市管理系统的用户管理数据表和应用程序,实现了应用程序对数据库的增删改查操作,其代码简洁易用,易于掌握,本文详细介绍了VB中使用ADO对象和ADO控件的数据库访问方式,并结合超市管理系统实例介绍了ADO控件的具体实现,具有一定的实践意义.

[1]彭志敏. 基于ADO数据库访问技术的财务智能管理系统的设计[J]. 自动化与仪器仪表,2016(11):105-106.

[2]王素芳. VB中数据库访问技术的应用研究[J]. 科技视界,2014(12):55-56.

[3]汪秋贵,刘国华,黄振辉. VB中运用Data和ADO Data连接数据库的方法[J]. 科技创新导报,2014(09):65.

[4]柏建普,杜娟. ADO技术在VB访问SQL数据库中的应用[J]. 电脑知识与技术,2013(29):6481-6485+6488.

[5]张新华. 基于VB与ADO的应用系统开发技术研究[J]. 赤峰学院学报(自然科学版),2013(16):24-25.

[6]王鹏宇. 在VB中应用ADO数据对象访问数据库[J]. 电脑知识与技术,2008(19):11-12+25.

[7]张宗飞. VB中基于ADO的数据库访问技术分析及应用[J]. 计算机与数字工程,2008(03):53-56+165.

[8]刘蕾. 微软数据访问技术的分析与应用[D].大连:东北财经大学,2007.

[9]田启明. 基于VB6平台的DAO、RDO和ADO数据库访问技术分析与比较[J]. 电脑学习,2004(03):33-34.

[10]徐成杰,金春霞,余扬信. VB中ADO技术的应用机制分析[J]. 淮阴工学院学报,2001(06):9-12.

[11]万迪华,汤彬,许志文. ADO数据访问技术及其在VB中的实现[J]. 计算机与现代化,2001(05):56-58.

ApplicationandResearchofADOTechnologyBasedonVB

XU Ying

(Department of Information, Jiangsu College of Finance & Accounting, Lianyungang Jiangsu 222000, China)

This article introduces and analyses the system structure and the hierarchical model of ADO technology in VB, describes two different methods of using ADO to access the database based on VB, and finally uses the supermarket managing system to implement the function of connecting database by using ADO in VB.

VB; ADO; database

1673-2103(2017)05-0055-05

2017-02-13

许莹,女(1984-),江苏连云港人,工程硕士,讲师,研究方向:大数据应用,软件技术.

T311.311

A

猜你喜欢
窗体数据表控件
基于.net的用户定义验证控件的应用分析
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
试谈Access 2007数据库在林业档案管理中的应用
基于列控工程数据表建立线路拓扑关系的研究
关于.net控件数组的探讨
图表
巧设WPS窗体控件让表格填写更规范
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
WinCE.net下图形用户界面的开发