爱问 爱问共享资料 爱问分类
首页 > > > VB中数据库通用查询程序的设计.pdf

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

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

上传者: 蜈蚣精
637次下载 0人收藏 暂无简介 简介 2012-01-15 举报

简介:免费vb数据库

数据库及信息管理本栏目责任编辑:闻翔军VB中数据库通用查询程序的设计张捍卫(海军蚌埠士官学校,安徽蚌埠233012)摘要:在分析结构化查询语句的基础上,提出了在VB中实现通用动态查询程序的原理j}口方法,并给出了具体的程序代码。关键词:VB;数据库;查询中图分类号:TP311文献标识码:A文章编号:1009—3044(2007)05—11204—02DesignofGeneralDatabaseQueryPrograminVBZHANGHan-wei(BengbuNavalPetryOfficerAcademy,Bengbu233012,Chma)Abstract:OnthebasisofananalysisofSQL,thispaperpresentstheprincipleandmethodofgeneraldatabasedynamicqueryintheVBTheprogramcodeispmvidedaswel1.Keywords:VB;Database;Query1引言VisualBasic6.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列表框。事件代码为:PrivateSubFormLoad0DimrecAsRecordsetDimi,x,yAsIntegerDimcnn1AsAD0DB.ConnectionDimrstSchemaAsAD0DB.RecordsetDimstrCnnAsStringSetcnnl:NewADODB.ConnectionstrCnn=”Provider=Microsoft.Jet.OLEDB.4.O;DataSource=数据库文件名称.mdb;PersistSecurityInfo=False”cnn1.OpenstrCnnSetmtSchema=cnn1.OpenSchema(adSchemaTables、DoUntilmtSchema.E0FIfrstSchema!TABUJPE=”TABLE”ThenlstTables.AddltemmtSchema!TABLENAME向表收稿日期:2007—01—17作者简介:张捍卫(1966-),男,安徽桐城人,副教授,研究方向:计算机教学、数据库应用系统的分析和程序开发工作。12O4电麓知识与技术维普资讯http://www.cqvip.com本栏目贲任编辑:闻翔军。数据库及信息管理名列表框添加数据表名EndIfrstSchema.M0veNextLooprstSchema.Closecnn1.Close为运算符组合框添加运算符代码(略)EndSub使用时,应将上面“DataSource=数据库文件名称.mdb”中的“数据库文件名称”替换为实际的Access数据库所在的路径和文件名。3.3选取数据表和字段运行时,表名列表框(1stTables)中将显示当前数据库中的数据表名称,从中选择要查找的数据表。当选取一个数据表后,在lstTables的Click事件代码中,利用列表框的Addhem方法将选定的数据表包含的字段名称添加到字段名列表框(1stShowFields)及组合框(cboField)中。这样在字段名列表框(1stShowFields)中可以选择查询结果要显示的字段名,若不选取任何字段,查询结果将显示该表中的所有字段信息。3.4设置查询条件一个查询条件是由三部分组成的:<字段名><操作符><值>。这三个部分可分别从“字段名称”、“运算符”和“值”三个组合框中选取,当设置好一个条件后,按“加人条件框”命令按钮,将其加入“条件框”中。“值”的形式是根据字段的类型而不同的,对于数值型的字段,数字直接放在操作符的后面,文本型的字段则要求表示值的字符用单引号括起来,而日期型的字段,在值的两边要加上符号#。实际应用中,有时需要多个条件的组合查询。组合查询可以是检索点之间相“与”的关系,也可以是相“或”的关系。因此,可点击“与(And)”或“或(0r)”命令按钮,在条件框中加人“And”或‘'Or”运算符。“加入条件框”及“与(And)”命令按钮部分代码如下。PrivateSubcmdAddTj—Click0“加人条件框”命令按钮代码DimnFldTypeAsIntegernndType=Adodc1.Recordset.Fields(bField).TypeⅡLen(txtTJ.Text1>0Thent)【tTJ.Text=戗tTJ.Text&vbCrLfEndIfIfnFldType=7Then字段类型为日期型txtTJ.Text=txtTJ..Text&bField&””&cboOperator.Text&”#”&cboValHe.Text&”#”ElseIfnFldType=202OrnFldType=203Then字段类型为文本型、备注型IfcboOperator.Text=”like”Thenlike运算符txtTJ.Text=txtTJ.Text&bField&””&cboOperator.Text&”%”&cboValHe.Text&”%”ElsetxtTJ.Text=txtTJ.Text&bField&””&cboOperator.Text&””&cboValue.Text&””EndIF3.5生成SQL语句所有条件设置好后,可按“确定”命令按钮获取查询语句。当然在这过程中,要对条件框中的条件进行一些处理,如去掉每行后的回车换行符等,然后根据选择的表名、字段名及查询条件生成Select语句。部分代码如下:PrivateSubcmdOK_Click0DimiAsIntegerDimFieldName,TableName,sWhereAsAsStringDimsTmp,sSQLStringAsString生成WHERE后的条件表达式IfLen(txtTJ.Text)>0ThensWhere=LTrim(txtTJ.Text)Fori=1ToLen(sWhere1去掉vbCrLfIfMid(sWhere,i,1)=Chr(13)ThensTrop=sTmp&””ElseIfMid(sWhere,i,1)=Chr(1o)Then什么也不做ElsesTmp=sTmp+Mid(sWhere,i,1)EndⅡNextsWhere=sTmpswhere=RTrim(sWhere1IfLen(sWhere1>0ThensWhere=”Where”&sWhereEndIfEndIfFieldName=Mid(FieldName,1,Len(FieldName)一1)EndIfFori=0TolstTables.ListCount一1取得表名IflstTables.Selected(i1ThenTableName=TableName+(1stTables.List(i))&”,”EndIfNextTableName=Mid(TableName,1,Len(TableName)一1)去掉末尾的”.”生成SQLsSQl_String=”Select”&FieldName&”From”&Table—Name&sWhereEndSub这里sSQLString变量中保存的信息就是查询的SQL语句,将它赋给数据控件,即可得到满足条件的记录信息。4结束语以上就数据库应用系统中使用频率最高的查询子系统,说明了一种相对通用的动态查询程序的设计思路,具有较好的适应性,它既适合Access数据库,也适合SQLServer数据库。在多个查询系统的应用中,节省了开发时间,降低了维护费用,取得了较好的效果。在此基础上稍加修改就可设计成一个通用的数据库查询控件,能够根据查询的结果自动生成显示。参考文献:【1】裘旭光,刘晶.数据库系统原理与应用教程【M】.北京:清华大学出版社,北方交通大学出版社,2003.【2]胡荣根.VisualBasic6.0中文版数据库和Internet编程【M】.北京:清华大学出版社,2000.【3】蒋斌,欧阳柳波,杨超.VisualBasic6.0程序设计【M】.北京:电子工业出版社,2001.12O5维普资讯http://www.cqvip.com

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

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

上传者: 蜈蚣精
637次下载 0人收藏 暂无简介 简介 2012-01-15 举报

简介:免费vb数据库

数据库及信息管理本栏目责任编辑:闻翔军VB中数据库通用查询程序的设计张捍卫(海军蚌埠士官学校,安徽蚌埠233012)摘要:在分析结构化查询语句的基础上,提出了在VB中实现通用动态查询程序的原理j}口方法,并给出了具体的程序代码。关键词:VB;数据库;查询中图分类号:TP311文献标识码:A文章编号:1009—3044(2007)05—11204—02DesignofGeneralDatabaseQueryPrograminVBZHANGHan-wei(BengbuNavalPetryOfficerAcademy,Bengbu233012,Chma)Abstract:OnthebasisofananalysisofSQL,thispaperpresentstheprincipleandmethodofgeneraldatabasedynamicqueryintheVBTheprogramcodeispmvidedaswel1.Keywords:VB;Database;Query1引言VisualBasic6.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列表框。事件代码为:PrivateSubFormLoad0DimrecAsRecordsetDimi,x,yAsIntegerDimcnn1AsAD0DB.ConnectionDimrstSchemaAsAD0DB.RecordsetDimstrCnnAsStringSetcnnl:NewADODB.ConnectionstrCnn=”Provider=Microsoft.Jet.OLEDB.4.O;DataSource=数据库文件名称.mdb;PersistSecurityInfo=False”cnn1.OpenstrCnnSetmtSchema=cnn1.OpenSchema(adSchemaTables、DoUntilmtSchema.E0FIfrstSchema!TABUJPE=”TABLE”ThenlstTables.AddltemmtSchema!TABLENAME向表收稿日期:2007—01—17作者简介:张捍卫(1966-),男,安徽桐城人,副教授,研究方向:计算机教学、数据库应用系统的分析和程序开发工作。12O4电麓知识与技术维普资讯http://www.cqvip.com本栏目贲任编辑:闻翔军。数据库及信息管理名列表框添加数据表名EndIfrstSchema.M0veNextLooprstSchema.Closecnn1.Close为运算符组合框添加运算符代码(略)EndSub使用时,应将上面“DataSource=数据库文件名称.mdb”中的“数据库文件名称”替换为实际的Access数据库所在的路径和文件名。3.3选取数据表和字段运行时,表名列表框(1stTables)中将显示当前数据库中的数据表名称,从中选择要查找的数据表。当选取一个数据表后,在lstTables的Click事件代码中,利用列表框的Addhem方法将选定的数据表包含的字段名称添加到字段名列表框(1stShowFields)及组合框(cboField)中。这样在字段名列表框(1stShowFields)中可以选择查询结果要显示的字段名,若不选取任何字段,查询结果将显示该表中的所有字段信息。3.4设置查询条件一个查询条件是由三部分组成的:<字段名><操作符><值>。这三个部分可分别从“字段名称”、“运算符”和“值”三个组合框中选取,当设置好一个条件后,按“加人条件框”命令按钮,将其加入“条件框”中。“值”的形式是根据字段的类型而不同的,对于数值型的字段,数字直接放在操作符的后面,文本型的字段则要求表示值的字符用单引号括起来,而日期型的字段,在值的两边要加上符号#。实际应用中,有时需要多个条件的组合查询。组合查询可以是检索点之间相“与”的关系,也可以是相“或”的关系。因此,可点击“与(And)”或“或(0r)”命令按钮,在条件框中加人“And”或‘'Or”运算符。“加入条件框”及“与(And)”命令按钮部分代码如下。PrivateSubcmdAddTj—Click0“加人条件框”命令按钮代码DimnFldTypeAsIntegernndType=Adodc1.Recordset.Fields(bField).TypeⅡLen(txtTJ.Text1>0Thent)【tTJ.Text=戗tTJ.Text&vbCrLfEndIfIfnFldType=7Then字段类型为日期型txtTJ.Text=txtTJ..Text&bField&””&cboOperator.Text&”#”&cboValHe.Text&”#”ElseIfnFldType=202OrnFldType=203Then字段类型为文本型、备注型IfcboOperator.Text=”like”Thenlike运算符txtTJ.Text=txtTJ.Text&bField&””&cboOperator.Text&”%”&cboValHe.Text&”%”ElsetxtTJ.Text=txtTJ.Text&bField&””&cboOperator.Text&””&cboValue.Text&””EndIF3.5生成SQL语句所有条件设置好后,可按“确定”命令按钮获取查询语句。当然在这过程中,要对条件框中的条件进行一些处理,如去掉每行后的回车换行符等,然后根据选择的表名、字段名及查询条件生成Select语句。部分代码如下:PrivateSubcmdOK_Click0DimiAsIntegerDimFieldName,TableName,sWhereAsAsStringDimsTmp,sSQLStringAsString生成WHERE后的条件表达式IfLen(txtTJ.Text)>0ThensWhere=LTrim(txtTJ.Text)Fori=1ToLen(sWhere1去掉vbCrLfIfMid(sWhere,i,1)=Chr(13)ThensTrop=sTmp&””ElseIfMid(sWhere,i,1)=Chr(1o)Then什么也不做ElsesTmp=sTmp+Mid(sWhere,i,1)EndⅡNextsWhere=sTmpswhere=RTrim(sWhere1IfLen(sWhere1>0ThensWhere=”Where”&sWhereEndIfEndIfFieldName=Mid(FieldName,1,Len(FieldName)一1)EndIfFori=0TolstTables.ListCount一1取得表名IflstTables.Selected(i1ThenTableName=TableName+(1stTables.List(i))&”,”EndIfNextTableName=Mid(TableName,1,Len(TableName)一1)去掉末尾的”.”生成SQLsSQl_String=”Select”&FieldName&”From”&Table—Name&sWhereEndSub这里sSQLString变量中保存的信息就是查询的SQL语句,将它赋给数据控件,即可得到满足条件的记录信息。4结束语以上就数据库应用系统中使用频率最高的查询子系统,说明了一种相对通用的动态查询程序的设计思路,具有较好的适应性,它既适合Access数据库,也适合SQLServer数据库。在多个查询系统的应用中,节省了开发时间,降低了维护费用,取得了较好的效果。在此基础上稍加修改就可设计成一个通用的数据库查询控件,能够根据查询的结果自动生成显示。参考文献:【1】裘旭光,刘晶.数据库系统原理与应用教程【M】.北京:清华大学出版社,北方交通大学出版社,2003.【2]胡荣根.VisualBasic6.0中文版数据库和Internet编程【M】.北京:清华大学出版社,2000.【3】蒋斌,欧阳柳波,杨超.VisualBasic6.0程序设计【M】.北京:电子工业出版社,2001.12O5维普资讯http://www.cqvip.com
  • 相关资料
  • 该用户的其他资料
  • 名称/格式
  • 下载次数
  • 资料大小
  • 名称/格式
  • 下载次数
  • 资料大小

用户评论

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

请选择举报的类型

关闭

提示

提交成功!

感谢您对爱问共享资料的支持,我们将尽快核实并处理您的举报信息。

关闭

提示

提交失败!

您的举报信息提交失败,请重试!

关闭

提示

重复举报!

亲爱的用户!感觉您对爱问共享资料的支持,请勿重复举报噢!

全屏 缩小 放大
收藏
资料评价:

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

温馨提示

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