c#

位置:IT落伍者 >> c# >> 浏览文章

在Visual Basic中用DAO实现数据库编程


发布日期:2019年02月26日
 
在Visual Basic中用DAO实现数据库编程

DAO(DataAccessObject)全称为数据访问对象它是数据库编程的重要方法之一DAO的一种面向对象的界面接口特色为它不是可视化的对象使用它全部都要靠编码来完成DAO是设计关系型数据库系统结构的对象类的集合它提供了完成管理这样一个系统所需的全部操作的属性和方法包括创建数据库定义表字段和索引建立表间的关系定位和查询数据库等工具由于ADO(ActiveXDataObjectActiveX数据对象)的出现DAO的使用已大大减少但它无须使用ODBC(开放数据库连接)便可连接各个数据源因而我们仍经常用经典的DAO下面我向大家详细介绍如何使用DAO编程

DAO使用之前必须先引用方法为打开VB从VB的工程菜单中选择引用引用对话框出现后从库的列表中选择MicrosoftDAOObjectLibrary单击确定现在便可以使用DAO对象库提供的所有对象进行编程了

创建数据库

在DAO中用CreatDataBase方法可以根据用户需求动态的创建数据库这一点在程序中是非常有用的用户可以根据要求实时建立数据库建立过程如下

PrivateSubCom_creat_Click()

OnErrorGoToErr

CreatDataBase数据库名称mdbdbLangGeneral

Msgbox数据库建立完毕

ExitSub

Err:

MsgBox不能建立数据库!&vbCrLf&vbCrLf&ErrDescriptionvbInformation

EndSub

这样数据库便在当前默认的路径下建立了

创建表与字段

建立数据库后则需要在该数据库中建立表这要用到TableDef对象先定义一个TableDef类型的对象然后用TableDef集合中Append方法将之追加到数据库当中去并且同时定义一个Field对象用CreatFiele的方法创建一个Field对象向表中添加字段例如:

PrivateSubCom_table_Click()

OnErrorGoToErr

DimDefdbAsDataBase

DimNewTableAsTableDef

DimNewFieldAsField

SetDefdb=Workspaces()OpenDatabase(Apppath&数据库名称mdbFalse)

SetNewTable=DefDataBaseCreateTableDef(表名)

SetNewField=DefTableCreateField(字段名dBText)′创建一个字符型的字段长度为个字符

DefTableFieldsAppendNewField′字段追加

DefDatabaseTableDefsAppendNewTable′表追加

Msgbox表建立完毕

ExitSub

Err:

MsgBox对不起不能建立表请先再建表前建立数据库?vbCritical

EndSub

一个数据库可能有十几个甚至几十个字段一个表中有多少个字段则要创建多少次并要追加到表中每建立一个字段后都要用到字段追加命令但是表追加只需在所有字段建立完成后用一条命令即可完成

打开数据库

在VB中对一个对象变量引用之前必须加以说明DAO也是如此必须先声明数据库变量例如DimdbaseAsDatabase建立了数据库对象变量后我们便可打开数据库了在一般情况下都只是访问一个数据库当打开数据库后再对数据库中的各个记录进行操作这就要用到Recordset对象建立记录集例如

PrivateSubCommand_OpenDatabase_Click()

DimdbaseasDatabase

DimrsAsRecordset

Setdbase=OpenDatabase(Apppath&数据库名称mdb)

Setrs=dbaseOpenRecordset(select*from表名)

EndSub

这样数据库中的记录便放到Recordset中可以进行后续操作了

使用数据库

当打开数据库建立Recordset记录集后便可浏览删除添加查找数据库中的内容

)向前浏览

PrivateSubcmd_previous_Click()

rsMovePrevious

ifrsBOF=Truethen

rsMovelast

Endif

fori=to

label(i)caption=rsF

)向后浏览

PrivateSubcmd_next_Click()

rsMoveNext

IfrsEOF=Truethen

rsMoveFirst

Endif

fori=to

label(i)caption=rsFields(i)&

next

EndSub

)删除记录

PrivateSubcmd_del_Click()

OnErrorGoTohandle

Dimmsgasstring

msg=是否要删除记录&Chr$()

msg=msg&label()′把删除记录的代号加入msg中

IfMsgbox(msg删除记录)<>ThenExitsub

rsdelete

rsMovenext

IfrsEOF=TrueThen

rsMovePrevious

Endif

fori=to

label(i)caption=rsFields(i)&

next

handle:

MsgBox该记录无法删除!!!

ExitSub

EndSub

)添加记录

向数据库中添加记录比较麻烦一点大致分为三步首先用AddNew方法向数据库添加一个新的空白记录其次将要输入的数据分别赋到数据库的各个字段中最后用Updata的方法把记录写到数据库中去例如

PrivateSubcmd_new_Click()

rsAddNew

Fori=to

rsFields(i)=TextBox(i)Text

Next

rsUpdata

EndSub

)查找记录

查找记录可以用Find方法例如

PrivateSubCmd_search_Click()

Setrs=dbaseopenRecordset(表名dbopenDynaset)

rsfindfirst字段名=&TextText&′TextText是输入的关键字

ifrsNomatch=Truethen

Msgbox对不起没有该记录

else

Fori=to

label(i)caption=rsFields(i)&

Next

Endif

rsclose

EndSub

以上只是大致介绍了DAO的一些最常用最典型的用法真正要熟练掌握它需要不懈的努力当你很好的理解了DAO后对学习新的RDO和ADO也有很大的帮助并且DAO和ADO可以同时使用DAO的缺陷在于查找功能不强没有ADO方便但动态创建数据库却远超ADO因此有时二者结合更强大我们相信DAO一定会帮你节约宝贵时间为工作提供方便

上一篇:利用Visual Basic6.0实现五线谱作曲工具

下一篇:SSAS : 使用.NET为SSAS编写自定义程序集