首页 > > > VB中数据库通用查询程序的设计.pdf

VB中数据库通用查询程序的设计.pdf

VB中数据库通用查询程序的设计.pdf

上传者: 蜈蚣精 2012-01-15 评分1 评论0 下载637 收藏10 阅读量1497 暂无简介 简介 举报

简介:本文档为《VB中数据库通用查询程序的设计pdf》,可适用于软件工程领域,主题内容包含数据库及信息管理本栏目责任编辑:闻翔军VB中数据库通用查询程序的设计张捍卫(海军蚌埠士官学校安徽蚌埠)摘要:在分析结构化查询语句的基础上提出了在VB符等。

数据库及信息管理 本栏目责任编辑:闻翔军 VB中数据库通用查询程序的设计 张捍 卫 (海军蚌埠士官学校,安徽 蚌埠 233012) 摘要:在分析结构化查询语句的基础上,提出了在 VB中实现通用动态查询程序的原理j}口方法,并给出了具体的程序代码。 关键词 :VB;数据库 ;查询 中图分类号:TP31 1 文献标识码:A 文章编号:1009—3044(2007)05—11204—02 Design of General Database Query Program in VB ZHANG Han-wei (Bengbu Naval Petry Officer Academy,Bengbu 23301 2,Chma) Abstract:On the basis of an analysis of SQL,this paper presents the principle and method of general database dynamic query in the VB The program code is pmvided as wel1. Key words:VB;Database;Query 1引言 Visual Basic 6.0作为一种简捷 、系统的Windows应用程序开 发工具,具有强大的数据处理能力,被广泛应用于建立各种数据 库管理系统。数据库管理系统的最终 目的在于将经过加工的数据 以某种形式提供给用户。但用户的查询要求是不确定和变化的, 能否提供满足用户查询需求且查询效率高的人机交互接口是衡 量应用程序好坏的重要指标。在软件的生命周期中,由于用户需 求的变化以及产品升级的需要 ,弓l起数据库结构变化,使得原有 的查询语句和查询途径随之变化。通常的查询程序是量身订做 的,不具有通用性 ,在发生这种情况时,必须对原有的程序进行修 改,这将耗费大量的人力 、物力资源,给软件的维护和升级带来较 大的难度。因此,我们有必要在查询程序的设计上加以改进 ,使其 能适应用户不断变化的查询请求和数据库的变化。具有一定的通 — — 一 用性。 一 2实现原理 在关系数据库中,对数据库的各种操作是通过结构化查询语 言SQL进行的。查询是由SELECT语句完成的,其最基本和常用 的形式为:SELECT <字段名> FROM <表名>WHERE<查询条 件>。其中WHERE子句可以由多个谓词通过“and”(与)和“or” (或)的逻辑关系组合在一起,任何复杂的查询都能由SELECT语 句将它表达出来。在VB中利用 ADO数据连接的 OpenSchema方 法获取数据库的数据表。并将其显示在数据列表框中,查询时,选 择要查询的数据表及要显示的字段名称,设置合适的查询条件 , 最后生成结构化查询语句来实现对数据的查询。 3实现方法 3.1设计界 面 图 1 窗体界面设 计 在 VB的集成开发环境下添加一个窗体.并在窗体上放置 3 个组合框、2个列表桎 、1个文本框 、6个命令按钮、6个标签、1个 Adodcl控件。界面设计如图 1所示,控件属性设置如表 1。 表 1 主要控件属性设置及功能 3.2建立数据连接并初始化相关控件 为了实现数据库的通用查询,需在窗体加载(Load)事件中建 立 ADO数据库连接.并将数据库中的数据表名称添加到 lstTable 列表框。事件代码为: Private Sub Form Load0 Dim rec As Recordset Dim i,x,y As Integer Dim cnn 1 As AD0DB.Connection Dim rstSchema As AD0DB.Recordset Dim strCnn As String Set cnnl:New ADODB.Connection strCnn=”Provider=Microsoft.Jet.OLE DB.4.O;Data Source=数据 库文件名称.mdb;Persist Security Info=False” cnn1.Open strCnn Set mtSchema=cnn1.OpenSchema(adSchemaTables、 Do Until mtSchema.E0F If rstSchema!TABU J PE=”TABLE”Then lstTables.Addltem mtSchema!TABLE NAME 向表 收稿 日期 :2007—01—17 作者简介:张捍卫(1966-),男,安徽桐城人,副教授,研究方向:计算机教学、数据库应用系统的分析和程序开发工作。 12O4 电麓知识与技术 维普资讯 http://www.cqvip.com 本栏目贲任编辑:闻翔军 。数据库及信息管理 名列表框添加数据表名 End If rstSchema.M0veNext Loop rstSchema.Close cnn1.Close 为运算符组合框添加运算符代码(略) End Sub 使用时,应将上面“Data Source=数据库文件名称.mdb”中的 “数据库文件名称”替换为实际的 Access数据库所在的路径和文 件名。 3.3选取数据表和字段 运行时,表名列表框(1stTables)中将显示当前数据库中的数 据表名称,从中选择要查找的数据表。当选取一个数据表后,在 lstTables的 Click事件代码中,利用列表框的 Addhem方法将选定 的数据表包含的字段名称添加到字段名列表框(1stShowFields)及 组合框(cboField)中。这样在字段名列表框(1stShowFields)中可以 选择查询结果要显示的字段名 ,若不选取任何字段,查询结果将 显示该表中的所有字段信息。 3.4设置查询条件 一 个查询条件是由三部分组成的:<字段名> <操作符> < 值>。这三个部分可分别从“字段名称”、“运算符”和“值”三个组 合框中选取,当设置好一个条件后,按“加人条件框”命令按钮 ,将 其加入“条件框”中。“值”的形式是根据字段的类型而不同的,对 于数值型的字段,数字直接放在操作符的后面,文本型的字段则 要求表示值的字符用单引号括起来 ,而日期型的字段,在值的两 边要加上符号 #。 实际应用中,有时需要多个条件的组合查询。组合查询可以 是检索点之间相“与”的关系,也可以是相“或”的关系。因此 ,可点 击“与(And)”或“或(0r)”命令按钮,在条件框中加人“And”或‘'Or” 运算符。“加入条件框”及“与(And)”命令按钮部分代码如下。 Private Sub cmdAddTj—Click0 “加人条件框”命令按钮 代码 Dim nFldType As Integer nndType=Adodc 1.Recordset.Fields(bField).Type ⅡLen(txtTJ.Text1>0 Then t)【tTJ.Text=戗tTJ.Text&vbCrLf End If IfnFldType=7 Then 字段类 型为 日期型 txtTJ.Text=txtTJ..Text& bField& ””& cboOperator.Text & ”#”& cboValHe.Text& ”#” ElseIf nFldType=202 Or nFldType=203 Then 字段类 型为文本型、备注型 If cboOperator.Text=”like”Then like运算符 txtTJ.Text=txtTJ.Text&bField& ””&cboOperator.Text& ” %”& cboValHe.Text& ”% ” Else txtTJ.Text=txtTJ.Text& bField& ””& cboOperator.Text & ” ”& cboValue.Text& ” ” End IF 3.5生成 SQL语句 所有条件设置好后,可按“确定”命令按钮获取查询语句。当 然在这过程中,要对条件框中的条件进行一些处理,如去掉每行 后的回车换行符等,然后根据选择的表名、字段名及查询条件生 成 Select语句。部分代码如下: Private Sub cmdOK _ Click0 Dim i As Integer Dim FieldName,TableName,sWhere As As String Dim sTmp,sSQLString As String 生成WHERE后的条件表达式 If Len(txtTJ.Text)>0 Then sWhere=LTrim(txtTJ.Text) Fori=1 To Len(sWhere1 去掉 vbCrLf If Mid(sWhere,i,1)=Chr(13)Then sTrop=sTmp& ”” ElseIf Mid(sWhere,i,1)=Chr(1 o)Then 什么也不做 Else sTmp=sTmp+Mid(sWhere,i,1) EndⅡ Next sWhere=sTmp swhere=RTrim(sWhere1 If Len(sWhere1>0 Then sWhere=”Where”& sWhere End If End If FieldName=Mid(FieldName,1,Len(FieldName)一1) End If For i=0 To lstTables.ListCount一 1 取得表名 If lstTables.Selected(i1 Then TableName=TableName+(1stTables.List(i))&”,” End If Next TableName=Mid(TableName,1,Len(TableName)一1) 去 掉末 尾的”.” 生成 SQL sSQl_String=”Select”&FieldName& ”From ”&Table— Name& sWhere End Sub 这里 sSQLString变量中保存的信息就是查询的 SQL语句,将 它赋给数据控件,即可得到满足条件的记录信息。 4结束语 以上就数据库应用系统中使用频率最高的查询子系统,说明 了一种相对通用的动态查询程序的设计思路 ,具有较好的适应 性,它既适合 Access数据库 ,也适合 SQL Server数据库。在多个查 询系统的应用中,节省了开发时间,降低了维护费用,取得了较好 的效果。在此基础上稍加修改就可设计成一个通用的数据库查询 控件,能够根据查询的结果自动生成显示。 参考文献: 【1】裘旭光,刘晶.数据库系统原理与应用教程【M】.北京:清华大 学出版社,北方交通大学出版社,2003. 【2]胡荣根.Visual Basic 6.0中文版数据库和 Internet编程【M】. 北京:清华大学出版社,2000. 【3】蒋斌 ,欧阳柳波,杨超.Visual Basic 6.0程序设计【M】.北京: 电子工业 出版社 ,2001. 12O5 维普资讯 http://www.cqvip.com

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 2
所需积分:0 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!