第七讲 VB访问SQL Server2000数据库的方法(3)

2019-09-01 19:41

远程连接格式:

ConnectionString=\

Server};server=211.85.184.107 ;

uid=sa;pwd=; ConnectionTimeout=0;database=aa\

在VB中用ADO实现数据库访问

Visual Basic作为一种面向对象的可视化编程工具,具有简单易学、灵活方便和易于扩充的特点,并且支持一套出色的数据库访问技术。Microsoft为其提供了与SQL Server通信的API函数集及工具集,因此它越来越多地用作前台应用程序的开发,与后台的Microsoft SQL Server相结合,从而提供一个高性能的客户机-服务器方案。

一、VB数据库访问技术的发展

早期的Visual Basic数据访问工具是简单的ASCII文件访问工具,极少数SQL Server 的前端应用程序是数据接口VBSQL编写的。在Visual Basic 3.0时代,许多用户强调转移包含远程数据源的ISAM(Indexed Sequential Access Method,索引顺序存取法)数据,为此Microsoft设计了Microsoft Jet Database Engine(或简称为Jet)和DAO(Data Access Object),使得Visual Basic Access开发人员很容易地同Jet接口,其操作针对记录和字段,主要用于开发单一的数据库应用程序。随着使用者需求的不断改变,Visual Basic又包含了更快的访问远程数据和对ODBC数据源访问的优化,出现了新的数据库接口RDO(Remote Data Object),它是访问关系型ODBC数据源的最佳界面接口,其操作针对行和列。ADO(ActiveX Data Objects)作为另一种可供选择的技术出现,正在逐渐代替其他数据访问接口。ADO比DAO和RDO具有更好的灵活性,更易使用,实现的功能也更全面。 二、ActiveX数据对象ADO

ADO是一种用于开发访问OLE DB数据源应用程序的API,是Visual Basic中新的数据访问标准。ADO提供了更为高级的易于理解的访问机制,具有更加简单、更加灵活的操作性能。ADO访问数据是通过OLE DB来实现的,OLE DB不仅能够以SQL Server、Oracle、Access等数据库文件为访问对象,还可对Excel表格、文本文件、图形文件、电子邮件等各种各样的数据通过统一的接口进行存取。ADO集中了DAO和RDO的优点,是DAO、RDO的后继产物而且不像DAO和RDO那样依赖于对象层次。ADO对象模型定义了一个可编程的分层对象集合,主要由七个对象成员Connection、Command、Recordset、Error、Parameter、Field和Property以及四个集合对象Errors、Parameters、Fields、Properties所组成。每个 Connection、Command、Recordset和Field对象都有Properties集合。 三、ADO数据库访问技术的应用

在VB中,使用ADO访问数据库主要有两种方式,一种是使用ADO Data控件,通过对控件的绑定来访问数据库中的数据,即非编程访问方式;另一种是使用ADO对象模型,通过定义对象和编写代码来实现对数据的访问,即编程访问方式。下面以SQL Server数据库为例,说明这两种方式的使用。首先在SQL Server 2000中建立一个aa的数据库,在aa数据库中建立xsh数据表,然后将此数据表的信息通过数据绑定控件DataGrid显示出来。

(一)使用ADO Data控件访问数据库。这是使用ADO快速创建数据绑定控件和数据提供者之间的连接。其中数据绑定控件可以是任何具有DataSource属性的控件;数据提供者可以是任何符合OLE DB规范的数据源。

ADO Data控件是ActiveX控件,在使用前必须先将其添加到工具箱中。方法是:

(1)单击“工程”—“部件”菜单选项,选中“Microsoft ADO Data Control 6.0(OLE DB)”后,按“确定”,此时ADO数据控件便出现在工具箱中。

(2)将ADO Data控件添加到窗体上,其默认的名称属性为“Adodc1”。 (3)右击ADO Data控件,选“ADODC属性”,弹出“属性页”对话框。

(4)选中“使用连接字符串”(也可以选择“ODBC数据源名称”),再单击“生成”按钮,弹出“数据链接属性”对话框。

(5)选择“提供程序”选项卡,在列表中选择“Microsoft OLE DB Provider For SQL SERVER”选项,单击

“下一步”按钮。

(6)指定服务器的名称和登录信息并选择本连接要使用的数据库文件。

(7)单击“测试连接”按钮以确定连接是否正常。若得到测试成功的消息,单击“确定”按钮以继续。 (8)在“属性页”对话框中选择“记录源”选项卡,在命令类型下拉列表中选择“2-adCmdTable”选项,在表或存储过程名称下拉列表中选择数据表“xsh”。(若选择的命令类型为“1-adCmdText”,则可在命令文本框中输入SQL查询语句select * from authors),然后单击“确定”按钮。

(9)在窗体上再添加一个数据绑定控件DataGridl,设定其DataSource为Adodc1。

运行结果:

通过上述操作便实现了SQL Server数据库aa中authors表的浏览功能,得到预期的运行结果。 (二)使用ADO 对象模型访问数据库。为了能够在程序中使用ADO对象编程,在连接数据库前,需要在Visual Basic 6.0菜单 “工程”—“引用”中选择Microsoft ActiveX Data Objects 2.8 Library组件。运用ADO对象模型的主要元素:Connection(连接)中的ConnectionString属性进行连接,ConnectionString为可读写string类型,指定一个连接字符串,告诉ADO如何连接数据库。

(1)首先创建一组ADO对象用于设置打开连接和产生结果集。声明语句如下: Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset

(2)创建ADO对象实例,声明了对象以后,还需要创建对象实例,否则不能使用。以下是两条重要语句:

Set cn =New ADODB.Connection Set rs =New ADODB.Recordset

(3)设置Connection对象实例ConnectionString属性连接到数据库。有两种方法:

方法一:有源数据库连接。首要任务是要注册数据源名称(DSN),通过配置ODBC环境,进行数据源的注册,然后才能对数据源进行连接、访问和操作。例如,DSN数据源是“xn”、用户名是“xn”、口令为xn,与数据库“xsh”建立的连接代码如下:

cn.ConnectionString=\

方法二:无源数据库连接。不需要配置ODBC数据源,区别在于是否使用了DSN来决定。例如,提

供连接所需要的特定信息包括:服务器名称是“211.85.184.107”、用户名是“xn”、口令为xn,与数据库“aa”建立的连接代码如下:

cn.ConnectionString=\ (4)设置好连接属性后,就可以打开连接对象了。语句如下: cn.Open

这样,VB和后台SQL Server数据库的连接就创建好了。

实例:创建示图界面,并以无源数据库连接的方式完成上例同样的功能。编写代码如下: Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command

Private Sub Form_Load()

Set cn = New ADODB.Connection Set rs = New ADODB.Recordset

'有源连接(通过ODBC的DNS连接)

'cn.ConnectionString = \'无源连接(直接通过SQLServer服务器IP地址连接) cn.ConnectionString

=

server};server=211.85.184.107;uid=sa;pwd=swj;ConnectionTimeout=0;Database=aa\

cn.Open

cmd.ActiveConnection = cn cmd.CommandType = adCmdText

cmd.CommandText = \rs.CursorLocation = adUseClient rs.CursorType = adOpenDynamic rs.LockType = adLockReadOnly rs.Open cmd

Set DataGrid1.DataSource = rs

'cn.Execute \'cn.Execute (\'Set rs = cn.Execute(\

\


第七讲 VB访问SQL Server2000数据库的方法(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:规范检验室操作确保饲料检验质量

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: