VB数据库开发中的一些应用技巧_第1页
VB数据库开发中的一些应用技巧_第2页
VB数据库开发中的一些应用技巧_第3页
VB数据库开发中的一些应用技巧_第4页
VB数据库开发中的一些应用技巧_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VB数据库开发中的一些应用技巧3陈宁华(福建儿童发展职业学院,福州350013摘要:应用实例说明了通过ADO处理数据库表中数据的实现方法,介绍了利用S QL语句实现对数据作数学统计的方法。关键词:数据库;开发中图分类号:TP文献标识码:A文章编号:K124(200702-0025-030引言在VB的应用程序开发中,访问数据库的方法可归纳为两种。一种是通过DAO或ADO的数据源对表中的数据进行直接操作,另一种是通过标准的S QL语句结合Connecti on对象对数据库中的数据进行操作,对表中的数据进行检索和统计。DAO 是V isual Basic5.0使用的数据访问技术,它在用于访问MDB文

2、件格式的数据库时有较高的效率,但访问如O racle或S QL Server的非MDB文件格式的数据库时,因基于Access/Jet数据库引擎,访问速度会大大降低。所以V isual Basic6.0推出了ADO技术。ADO中文含意是ActiveX数据对象(ActiveX Data Object,它是一种面向对象的接口。ADO访问数据库是通过访问OLEDB使用程序和OLEDB供给程序来进行的,它在封装OLE DB的程序中使用了大量的COM接口,是一种高层的访问技术。它在继承OLE DB的同时,大大简化了OLE DB的操作。此外,ADO技术可以以ActiveX控件的形式出现,被广泛应用于M ic

3、r os oft ActiveX页、V isual C+ +和V isual Basic的编程。S QL是管理关系数据库系统的标准语言。每一种关系数据库如Access、S QL Server、O racle等都有它自己特有的S QL语言,但它们都支持像select、insert、update、delete、create、dr op等标准语句来完成几乎所有的对数据库的操作。本文就ADO和S QL的用法做一些介绍。1开发原型我们为计算机产品经销商开发一个进销存的程序。用MS Access数据库,创建的数据库名叫ware.mdb,在这个数据库中,建立表1,表2,表3,表4。表1商品明细表:ware

4、Detail商品编号商品名称单价wareI D(ch10wareName(ch30wPrice(Money厂商库存manifest(ch40num I n L ib(int表2流水账wAccount商品编号进货数ware I D(ch10wQuantity(int出货数日期wSold(intwDate(date表3库存表wL ib总库存数总库存金额T otal N um(intT otal M oney(Money表4临时表w I n Out进货数出货数QuantitySold52福建信息技术教育2007年第2期Fujian Education of Infor mation Technolo

5、gy3收稿日期:2007-3-7作者简介:陈宁华(1979,男,福建漳州人,助讲,研究方向:数据库开发。2ADO的使用方法ADO2.0存在于V isual Basic6.0的两个独立的库中第一个称为ADODB,在References对话框中的名字是M icr os oft ActiveX Data Objects2.0L i2 brary,在这个库中包含了所有的ADO对象。对于那些并不需要太多加强的ADO资源工程,应该使ADOR库。在References对话框中这个库称为M i2 cr os oft ActiveX Data Objects Recordset2.1L ibrary 这个库只包

6、含对Recordsets的支持。V isual BASI C 6.0通过ADO控件和Recordset对象两种方法来使用ADO。下面介绍一下Recordset对象的使用方法,在visual basic中加入如下代码:di m my Connectstr as strngdi m my Recordset as Ne w ADODB.recordsetmyConnectstr="PROV I D ER=M icr os oft.Jet. OLEDB.4.0;DataSource="&App.Path&"ware. mdb;Persist Securi

7、ty I nf o=False"myRecordset.Cours or Locati on=AduseClientmyRecordset.Open“select3fr om wDetail”,myConnectstr,adOpenKeyset,adLockPessi m istic这样就可以对商品明细表追加纪录:myRecordset.AddNe wmyRecordset.Fields("ware I D"="000001"myRecordset.Fields("ware Na me"="S witch 3500

8、"myRecordset.Fields("wPrice"=4350myRecordset.Fields("w Manufect"="Cisco"myRecordset.Update获取表中的纪录数:recordcnt=my Recordset.Recordcount移动纪录指针myRecordset.MoveFirst移动到表的第一条纪录myRecordset.Move Last移动到表的最后一条纪录myRecordset.MovePrevi ous移动到表的上一条纪录myRecordset.Move Next移动到表的下一

9、条纪录删除当前纪录myRecordset.Delete最后关闭纪录集,释放纪录集变量myRecordset.Cl oseSet myRecordset=Nothing3S QL的使用上面所用的方法,只适合于对单个表的简单操作,如果是对表的数据作复杂查询,或数据统计,用上述方法就非常不方便。一般情况下我们用S QL 语言结合Connecti on对象实现S QL语句中最常用的是Select语句,该语句用来从数据库表中检索数据或者完成其他一些功能,为了使用这条语句我们必须知道需要检索的字段名称,或者直接用星号来检索所有字段。下面是Select语句的基本语法: SE LECTALL|D I STI

10、N CTT OP xxPER2 CENTselect_listFROM table_na meWHEREsearch_criteria|j oin_criteria AND|OR search_criteriaGROUP BYALLaggregate_free_exp ressi on ,aggregate_free_exp ressi on.HAV I N G search_conditi onsORDER BYfield_listASC|DESC其中:ALL定义每一行都将返回,包括重复纪录。D I STI N CT定义只返回不重复的纪录。T OP定义需要得到的返回纪录的前几条。在数字xx后

11、用PERCENT来说明只返回前面百分之几条纪录。select_list列出要检索的表的列名。table_na me列出要检索的表名。search_criteria列出要检索的表的列名。j oin_criteria列出一个表中用来和另一个表的某个列连接的列名。aggregate_free_exp ressi on是一个不包含聚集的表达式。Field_list列出了数据排序的顺序。ASC定义按照升序排序。DESC定义按照降序排序。62福建信息技术教育2007年第2期下面举例加以说明。需要检索商品名细表中的信息可使用如下语句:SELECT3FROM waredetial关键字ORDER BY要求列名

12、以确定按哪一列排序,这里选定按ware I D排序,如果希望按列wa2 re I D的字母顺序排列可采用下面的代码:SELECT ware I D FROM ware Detial ORDER BY ware I D默认是按升序排列,如果想按降序排列可用如下代码:SELECT ware I D FROM ware Detial ORDER BY ware I D DESC如果想选择多列,可使用下面的语句:SELECT ware I D,ware Na me FROM ware Detial ORDER BY ware I D用WHERE关键字来限制选择范围。如果想选择ware Detial中w

13、are Na me列值为“cisco6000”的行,可用下面的代码实现:SELECT3FROM ware Detial WHERE ware2 Na me=”cisco6000”ORDER BY ware I D除了SE LECT语句,标准S QL语句还有I N2 SERT UP DATE DE LETE等,在此不再作具体介绍。实际的应用经常要对表中的某列或多列数据进行数学运算,这就需要如COUNT(,S UM(, AVG(,MAX(,M I N(等数学函数。下面对这些函数的用法作具体说明。先建立一个与数据库的连接di m my Connectstr as strngdi m my Cnt a

14、s Ne w ADODB.connecti onmyConnectstr="PROV I D ER=M icr os oft.Jet. OLEDB.4.0;DataSource="&App.Path&"ware. mdb;Persist Security I nf o=False"myCnt.Open myConnectstr若需要产生某种商品的总进货数以及总出货数,可用以下代码:exeStr=”insert int o w I nOut select su m(wQuan2 tityas Quantity,sum(wSoldas Sol

15、d fr om wAccount where ware I D=000001”若需要产生库存的总数以及总库存金额,可用以下代码:exeStr="insert int o wL ib select sum(nu2 m I nlibas t otal N u m,sum(num I nL ib3wPriceas? t otal M oney fr om wDetail"运行上述代码:myCnt.Execute exeStr关闭连接myCnt.Cl ose在应用程序的开发中,基于数据库的不同,只在连接的数据源部分作相应的修改,其它的部分无需改动。4结束语本文所列举的仅仅是ADO和S QL在VB数据库开发中应用的一小部分,实际的应用中对ADO的操作有时用ADO控件结合DAT AGR I D控件等显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论