`
sjk2013
  • 浏览: 2193889 次
文章分类
社区版块
存档分类
最新评论

浅谈VB程序设计中的数据库应用

 
阅读更多



浅谈VB程序设计中的数据库应用

Visual Basic程序设计中,数据库应用是一个非常重要、实用的内容,在以后的学习中我们肯定会大量使用Visual Basic编程开发数据库应用程序。现在我们正学习把Visual Basic (以下简称VB)与SQL SERVER组合起来使用。以下是我对数据库应用的一些认识。

1VB数据库应用的重要性

“数据库”是研究数据库结构、存储、设计和使用的软件技术,是进行数据管理和处理的技术,是学习计算机的所必须掌握的。 数据库基本能与vb做到无缝连接,虽然还是初学者但是我也能感觉到数据库与vb合作的重要性,所以我也在想着什么时候再把陈伟老师的视频看一下,之前看的时候那些非常陌生的东东再看的时候就应该会开朗一些了吧呵呵。

2.VB访问数据库方式的选择

VB访问数据库的技术和方式有很多种,通过对vb数据库开发实例的学习对其中的ADO技术了解了一些。不过还是对以前没听说过的东东找出来对比一下才能记得牢啊。

(1)DAO技术

DAO(Data Access Object,即数据访问对象)是一种Microsoft Jet数据库引擎的面向对象的接口。DAO通过编程直接控制Jet数据库引擎以实现复杂的数据库应用系统.适用于单机应用系统或小范围本地的分布应用,例如和Access的连接。

VB已经把DAO模型封装成了Data控件(就是vb工具箱中的)。分别设置相应的属性就可以将Data控件与数据库中的记录源连接起来.通过使用Data控件来对数据库进行操作。但是DAO数据库引擎不是真正的客户机/服务器数据库引擎。

(2 )RDO技术

RD0(Remote Data objects,即远程数据对象)是一个到ODBC的、面向对象的数据访问接口,是用来对远程数据库进行访问的,特别适合于客户机/服务器型数据库应用程序。和DAO一样 在VB中也把其封装为RDO控件了,其使用方法与DAO控件的使刚方法完全一样。

(3 )ADO技术

ADO(ActiveX Data Object.即ActiveX数据对象)是基于LOE DB之上的面向对象的数据访问模型.是DAO/RDO的后继产物。与其他数据访问对象相比,ADO包含的对象较少,更便于掌握和使用。

ADO实际是一种提供访问各种数据类型的连接机制。由于ADO是为Microsoft最新和最强大的数据访问范例OLE DB而设计的,OLE DB为任何数据源提供了高性能的、快速的访问。这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形等等。因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。所以,通过ODBC的方法同数据库接口,可以使用任何一种ODBC数据源,即不止适合于SQL Server、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件,是一个便于使用的应用程序层接口。

ADO在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数.所有这些都是为了提供轻量、高性能的接口,所以ADO易于使用、速度快、内存支出少、磁盘遗迹少。

另外.在VB6.0中有两种ADO类型库.一种称为ADODB(在做学生管理系统的时候目前看都是使用的这个).另一种称为ADOR。其中,ADODB功能更强大.它包含了主要的ADO对象.

3.对比

ADO是独立于开发工具和开发语言的简单而且容易使用的数据接口。同ADO相比,其他两种数据访问接口都会黯然逊色。另外,ADO更容易使用,性能更好,访问快速,性能高,并且提供了在Internet上数据库存取的良好接口,对网络数据库应用开发提供了极大的便利。

VB已经把DAO模型封装成了VB工具箱里的一个基本控件,即Data控件,这样说相信大家就更清楚了。

RDO和DAO有许多相似之处,且RDO没有考虑与Web接轨.其应用访问也受到限制。

4.VB数据库应用

这是对实例的一个整体的概括。

5VB数据库应用教学中的常见错误及难点

(1 )绑定控件访问数据库时的常见错误

在VB中,数据控件本身不能显示数据库的数据,必须通过文本框、标签、图像框、列表框、组合框、复选框、网格和OLE容器等控件绑定。绑定后也必须对控件的其 他两个属性进行设置,才显示字段的内容:

DataSource属性:通过指定有效的数据控件访问到数据库上;

DataField属性:设置数据库有效的字段与绑定控件建立联系。

(1)如果将RecordType属性设置为SnapShot类型,记录集为只读状态,在浏览记录集时无法编辑记录数据。

(2)当EofAction属性设置为2后,要向记录集加入空记录,需要单击控件的最后一条记录按钮,然后再单击下一条记录的按钮,才能进入Eof状态。当数据编辑后,必须单击控件上的按钮移动记录,使所作的改变存人数据库中。为使用户对数据库进行修改,必须将控件的ReadOnly设置为False。

(3)当RecordSource属性重新设置后,必须用Refresh方法激活这些变化,否则数据控件访问的数据源还是原来的记录集。

(4)在多表操作中,当两个表中具有相同的字段时,常出现找不到相应字段,可在字段名前加上表名前缀,表名与字段之间的访问必须用西文符号“.”。

(5)单选按钮不能被字段绑定,故要通过Click事件编程进行读写。

(6)调用Updata方法写入记录前,必须保证已调用了Addnew或Edit方法,否则程序在执行时要产生3020实时错误(在不使用Addnew或Edit的情况下,更新或取消更新)。在调用AddNew方法后调用Updata方法写入记录,记录指针自动返回到添加新记录前的位置上,所以窗体上不显示新记录。为此,在调用up—data方法后,使用MoveLast方法将记录指针再次移到当前新记录上。

(7)移动记录后,必须判断当前记录位置是否在有效范围内,否则下一次操作将产生越界错误。

(8)删除记录后,显示的记录还是被删除的那一条记录时,必须移动记录指针来刷新。

(2)采用ADO技术时的常见错误

(1)连接数据库失败。

这有四种可能。一是没有执行连接代码;二是没有在“工程”菜单中的引用对话框加载Microsoft ActiveX Data Objects 2.5 Library,即Ado对象;三是如果设置了静态的数据库存放绝对路径,下次连接数据库时这个路径更改了,当然无法找到数据库,用动态数据库连接的可解决此类问题,四是远程连接的时候没有关闭防火墙。

(2)SQL操作失败

这主要是因为错误的SQL语法或执行导致的。

举个例子:txtSQL = "select * from student_Info where class_NO=' " & Trim(txtClassno.Text) & " ' "


txtSQL变量是字符串连接的结果,必须用到双引号;加上SQL语言中的有字符串数据,而字符串数据用单引号括起来,这些都导致该VB代码较复杂,双引号和单引号交叉出现。以上任何一个细节出错都会导致一个错误SQL语法。

我的学生管理系统还没有完成,但是我每每把一个窗体甚至还没有完成一个窗体时就蹦错,调了又调,真是郁闷啊,不过幸好,当遇到错误会去网上找答案,看看前人的解决方法,有的时候还会学到一些意想不到的知识,感觉很值得;当请同学来帮忙解决的时候当然也会获取到一些知识啦,这又是一种收获,不过我还是想说调代码的滋味真的不是很好受啊。

分享到:
评论

相关推荐

    Visual Basic 2008程序设计完全自学教程 1/2

    内容丰富:Visual Basic2008的基础语法、面向对象编程、窗体应用程序、文件操作、数据库编程、网络应用等所有内容,《Visual Basic 2008程序设计完全自学教程》均有介绍 习题精选:章末均安排了大量的习题与编程实践...

    VB网络编程实例

    ◆ 103.htm 用Winsock实现点对点通信 ◆ 104.htm 邮件检查程序(二) ◆ 105.htm 邮件检查程序(一) ◆ 106.htm 在VB程序中怎样挂断拨号网络 ◆ 107.htm 在VB中操纵OLE服务器应用程序 ...

    Visual Basic 2008程序设计完全自学教程 2/2

    内容丰富:Visual Basic2008的基础语法、面向对象编程、窗体应用程序、文件操作、数据库编程、网络应用等所有内容,《Visual Basic 2008程序设计完全自学教程》均有介绍 习题精选:章末均安排了大量的习题与编程实践...

    vb控件开发 开发ocx

    浅谈用VB6.0编写BO程序 47 , 47.txt 巧用Visual Basic的TIMER控件 48 , 48.txt 取得控件绝对Top值 49 , 49.txt 如 何 解 决VB 中 的Grid 控 件 的 打 印 问 题 50 , 50.txt 如果自定义 MsgBox 的按钮,标题等 51 , 51...

    浅谈PLC学习的5个阶

    浅谈PLC学习的5个阶 1、学习PLC首先要选好学习那一个厂家的PLC,日系的 PLC内部软件集成度高应用简单.早期的OMRON、三菱应 用比较多、现在由于贸易和国际间的合作关系应用西门 子PLC、罗克韦尔的多一点,(尽管说学...

    asp.net知识库

    如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息[原创] 如何解决ACCESS中SELECT TOP语句竟然...

    VC与Labview、Matlab编程论文资料[2].rar

    VC_6_0读写Access数据库中图像字段的方法研究.pdf VC_6_0通过ADO连接数据库的通用方法研究.pdf VC_SQLServer和Matlab混合编程管理仿真数据.pdf VC_下MSComm控件的串口通信方法.pdf VC_与Matlab混合编程技术应用分析....

    VC与Labview、Matlab编程论文资料

    VC_6_0读写Access数据库中图像字段的方法研究.pdf VC_6_0通过ADO连接数据库的通用方法研究.pdf VC_SQLServer和Matlab混合编程管理仿真数据.pdf VC_下MSComm控件的串口通信方法.pdf VC_与Matlab混合编程技术应用分析....

    VC与Labview、Matlab编程论文资料[4].rar

    VC_6_0读写Access数据库中图像字段的方法研究.pdf VC_6_0通过ADO连接数据库的通用方法研究.pdf VC_SQLServer和Matlab混合编程管理仿真数据.pdf VC_下MSComm控件的串口通信方法.pdf VC_与Matlab混合编程技术应用分析....

    一个牛人提供的GIS源码(很好)

    压缩包中为源代码和生成的程序,同时还赠送了一个基于SF6的MAPX打包文件以及整个校园的地图文件,提供了开放环境中需要的插件支持文件(System目录下),同时由于文件大小原因,删除了许多Img目录下的图片并且在数据库...

Global site tag (gtag.js) - Google Analytics