论文部分内容阅读
摘要:在编程语言中,它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在VB中,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统VB给大家的印象极为深刻。让VB程序编写的前台连接上后台数据库,功能则会更加强劲,但为难的是实现数据库后台,那又得再去深入学习数据库语言,掌握难度大幅度提升。在此,我们就去寻求一种VB语言实现的查询方式。
关键词:VB数据库 查询
对于VB程序设计语言,想必大家都不陌生,它可谓是功能强大且简单易学,对计算机编程语言初学者来说是非常不错的一种选择,但是一个合格的程序并不能单纯的只有程序,还必须和数据库相连接才能得到更广泛的使用。在VB程序中,也同样可以连接各种数据库,比如以DATA控件连接SQL、以ADO控件连接Access,但是基本上所有的对数据库的查询操都必须要用标准SQL语句,无形中就增加了我们编写程序的难度。那么,这里我就介绍一种直接使用程序语言就可以实现查询的方法。
VB数据库中的数据连接方式有多种,包括最为基本的ODBC数据源连接方式和DATA数据控件的连接方式,但此类数据操作必须要以数据库语言作为支持才能实现后台数据的连接支持,因此,在这里不予考虑。除此以外,还有另一种方式,那就是大家都比较熟悉的ADO控件方式,虽然ADO方式一般来说同样使用SQL语句,但它多了以连接字符串的数据方式。这里,我以一个“工控机系统”设计的例子作为数据,进行操作,并以字符类型通过VB语句实现相关的功能。
使用VB中的ADO控件,连接上相应的数据文件,这里使用的是Access数据库,再以VB中的DataGrid控件和数据库相连接,其中包含“产品现型号”、“产品原型号”、“产品价格”和“性能描述”这四个字段名称,通过AddNew方法实现添加、Delete方法实现删除,下面我们就来进入查询的环节。
首先,我以Recordset这一属性对其数据库的“产品现型号”字段进行定位,然后以InputBox输入对话框输入需要查询的该字段的值,程序如下:
searchname = InputBox("请输入产品现型号")
If searchname = "" Then
err = MsgBox("内容不能为空,请重新输入", 48, "警告")
‘当输入的是空值时,提出错误警告
如果输入的值确实有效,那么执行程序如下:
Else
While Form2.Adodc1.Recordset.Fields("产品现型号") <> UCase(searchname)
‘使用UCase参数,将输入的字母统一转换为大写
Form2.Adodc1.Recordset.MoveNext
‘在查询之前,先將光标位置移动到第一栏,便于查询
If Form2.Adodc1.Recordset.EOF Then
b = MsgBox("查无此型号,请重新输入", 16, "错误")
‘若查询到了该字段的最后一项还是没有的话,就弹出出错提示
在这里,由于仍然是在While循环里面,因此要注意程序语言的处理,往往我们结束While循环是用Wend,但此处并没有给出能够结束循环的语句,如果强行写上Wend就会出现死循环;同时也不能使用我们以往常常用的End来表示结束,那样会一下子结束了整个程序,这也不是我们想要达到的效果。那么,如何才能达到既退出该循环又继续保留运行状态的效果呢?我们可以写出程序如下:
Exit Sub
‘Exit是局部的退出,在其后跟上Sub就表示仅仅退出当前的循环这一块
这样,通过Exit语句退出循环这一块后,我们还能够继续执行如下的程序:
Form2.Adodc1.Recordset.MoveFirst
‘将查询完成后的光标位置再移回第一栏,以便于下次查询
End
End If
Wend
‘到这里循环完全结束
Form2.Text1.Text = Form2.Adodc1.Recordset.Fields("产品现型号")
Form2.Text2.Text = Form2.Adodc1.Recordset.Fields("产品原型号")
Form2.Text3.Text = Form2.Adodc1.Recordset.Fields("产品价格")
Form2.Text4.Text = Form2.Adodc1.Recordset.Fields("性能描述")
‘若是查询到了相应的数据,将其所有的相关参数都显示在文本框中
到此,关于查询的语句就全部结束了,我们可以在VB的前台界面上看到自己的相关数据已经被检索出来了。从编程角度来看,这段代码的时间复杂度和空间复杂度没有任何问题;而从数据库的角度来看,检索速度在中小规模的数据表中,也达到了我们的要求。因此,使用本文所述的方法实现数据查询是成功可行的。
通过上述的操作,我们就能够实现相应的数据查询,使用者可以避免再去学习更为深入的数据库语言,同样能够达到想要的效果。这样,无形中VB的实用性更高了一层,更为广大的编程初学者所喜爱。
关键词:VB数据库 查询
对于VB程序设计语言,想必大家都不陌生,它可谓是功能强大且简单易学,对计算机编程语言初学者来说是非常不错的一种选择,但是一个合格的程序并不能单纯的只有程序,还必须和数据库相连接才能得到更广泛的使用。在VB程序中,也同样可以连接各种数据库,比如以DATA控件连接SQL、以ADO控件连接Access,但是基本上所有的对数据库的查询操都必须要用标准SQL语句,无形中就增加了我们编写程序的难度。那么,这里我就介绍一种直接使用程序语言就可以实现查询的方法。
VB数据库中的数据连接方式有多种,包括最为基本的ODBC数据源连接方式和DATA数据控件的连接方式,但此类数据操作必须要以数据库语言作为支持才能实现后台数据的连接支持,因此,在这里不予考虑。除此以外,还有另一种方式,那就是大家都比较熟悉的ADO控件方式,虽然ADO方式一般来说同样使用SQL语句,但它多了以连接字符串的数据方式。这里,我以一个“工控机系统”设计的例子作为数据,进行操作,并以字符类型通过VB语句实现相关的功能。
使用VB中的ADO控件,连接上相应的数据文件,这里使用的是Access数据库,再以VB中的DataGrid控件和数据库相连接,其中包含“产品现型号”、“产品原型号”、“产品价格”和“性能描述”这四个字段名称,通过AddNew方法实现添加、Delete方法实现删除,下面我们就来进入查询的环节。
首先,我以Recordset这一属性对其数据库的“产品现型号”字段进行定位,然后以InputBox输入对话框输入需要查询的该字段的值,程序如下:
searchname = InputBox("请输入产品现型号")
If searchname = "" Then
err = MsgBox("内容不能为空,请重新输入", 48, "警告")
‘当输入的是空值时,提出错误警告
如果输入的值确实有效,那么执行程序如下:
Else
While Form2.Adodc1.Recordset.Fields("产品现型号") <> UCase(searchname)
‘使用UCase参数,将输入的字母统一转换为大写
Form2.Adodc1.Recordset.MoveNext
‘在查询之前,先將光标位置移动到第一栏,便于查询
If Form2.Adodc1.Recordset.EOF Then
b = MsgBox("查无此型号,请重新输入", 16, "错误")
‘若查询到了该字段的最后一项还是没有的话,就弹出出错提示
在这里,由于仍然是在While循环里面,因此要注意程序语言的处理,往往我们结束While循环是用Wend,但此处并没有给出能够结束循环的语句,如果强行写上Wend就会出现死循环;同时也不能使用我们以往常常用的End来表示结束,那样会一下子结束了整个程序,这也不是我们想要达到的效果。那么,如何才能达到既退出该循环又继续保留运行状态的效果呢?我们可以写出程序如下:
Exit Sub
‘Exit是局部的退出,在其后跟上Sub就表示仅仅退出当前的循环这一块
这样,通过Exit语句退出循环这一块后,我们还能够继续执行如下的程序:
Form2.Adodc1.Recordset.MoveFirst
‘将查询完成后的光标位置再移回第一栏,以便于下次查询
End
End If
Wend
‘到这里循环完全结束
Form2.Text1.Text = Form2.Adodc1.Recordset.Fields("产品现型号")
Form2.Text2.Text = Form2.Adodc1.Recordset.Fields("产品原型号")
Form2.Text3.Text = Form2.Adodc1.Recordset.Fields("产品价格")
Form2.Text4.Text = Form2.Adodc1.Recordset.Fields("性能描述")
‘若是查询到了相应的数据,将其所有的相关参数都显示在文本框中
到此,关于查询的语句就全部结束了,我们可以在VB的前台界面上看到自己的相关数据已经被检索出来了。从编程角度来看,这段代码的时间复杂度和空间复杂度没有任何问题;而从数据库的角度来看,检索速度在中小规模的数据表中,也达到了我们的要求。因此,使用本文所述的方法实现数据查询是成功可行的。
通过上述的操作,我们就能够实现相应的数据查询,使用者可以避免再去学习更为深入的数据库语言,同样能够达到想要的效果。这样,无形中VB的实用性更高了一层,更为广大的编程初学者所喜爱。