VB数据输入有效性监测的探讨

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:pickbaobei
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Visual Basic具有强大的数据库功能,是开发数据库管理系统的常用工具。输入设计是系统设计中一个重要部分,良好的输入,可以确保数据的准确性和可靠性,数据输入有效性监测是输入设计重点考虑的问题。
  关键词:数据输入;有效性监测;主要措施;实现手段
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10768-03
  
  1 引言
  
  Visual Basic作为一种面向对象的可视化编程工具,具有简单易学,灵活方便和易于扩充的特点。强大的数据库功能,使Visual Basic越来越多地用作大型公司数据和客户机-服务器(C/S)应用程序的前端开发工具,它与后端的SQL Server数据库相结合,能够提供一个高性能的客户机—服务器解决方案。VB数据库操作的灵活性、智能性和交互性,使Visual Basic倍受数据库应用程序开发者的喜爱,是当今开发数据库管理系统的重要工具之一。
  在数据库管理系统的开发中,输入模块承担着将系统外的数据以一定的格式送入计算机的任务。数据输入是整个数据库管理系统的基础,一个好的输入设计可以确保录入数据的完整性、准确性和可靠性,提高信息的质量,为用户和系统带来友好的工作界面。因此,输入设计是系统设计中不可忽视的部分。输入设计要考虑输入设备、输入方式、输入界面、数据有效性监测等多方面的问题[1]。数据有效性监测是输入设计的应重点考虑的中心问题,采取有效的数据监测手段,可以减少输入错误,确保数据的准确性、可靠性。下面我们以某校图书管理系统中“图书类型设置”输入设计(界面如图1所示)为例,谈谈数据有效性监测的主要措施及实现方法。
  图1
  
  2 数据类型监测
  
  主要是为了判断当前的数据类型是否符合特定的要求。[2]例如在添加图书类型时,可借天数字段定义为整数型,若添加记录时,在可借天数文本框中输入“abc”这样的数据,这是错误的数据,保存时将会出现错误(如图2)。若输入1.6这样的数据,根据字段的实际意义,这也是错误数据,为此必须对可借天数文本框中输入的数据类型进行校验。对文本框中输入的字符进行过滤,只有满足条件的字符才能够输入进来。在可借天数文本框text3的KeyPress事件中编写数据校验代码,检查键入的是否是'0'-'9'之间的字符,即判断是否为整数。
  图2
  Private Sub Text3_KeyPress(keyascii As Integer)
  if keyascii <48 or keyascii> 57 then
  msgbox "输入有误,可借天数必须为整数"
  keyascii = 0
  end if
  End Sub
  下表是Visual Basic中用于检查数据类型的常用函数:
  
  3 数据范围监测
  
  根据字段实际的取值范围校验数据。很多情况下,数据库字段的取值范围不是该字段类型默认的取值范围,而是根据实际情况而设定。例如可借天数字段为整型,VB中整型的取值范围为-32768~32767,但实际上可借天数取值范围应该在1~某个正整数n之间(n应根据各图书馆的制度来定)。这时,就需要根据实际取值范围校验数据。在可借天数文本框text3的LostFocus事件中编写数据校验代码。如果发现输入数据不在1~60之间,则及时提示用户,并使可借天数文本框保持焦点。
  Private Sub Text3_LostFocus()
  '假定可借天数最长为60天
  If Val(Text3.Text) <= 0 Or Val(Text3.Text) > 60 Then
  MsgBox "可借天數必须是0~60之间的整数"
  Text3.SetFocus
  Text3.SelStart = 0
  Text3.SelLength = Len(Text3.Text)
  End If
  End Sub
  
  4 数据长度监测
  
  根据字段定义的长度判定输入的数据是否符合特定的要求。如某校学生学号采用十位数字编码,学号字段设置为10,在输入学号时不仅要对学号文本框进行数据类型的监测,而且还要进行长度的验证,超过10位以及不足10位的都将是错误数据。可设置文本框的MaxLength属性为10,直接限制文本框中输入的字符的最大数量,在学号文本框text1的LostFocus事件过程中,编写代码校验学号不足10位的情况。
  Private Sub Text1_LostFocus()
  If Len(Trim(Text1.Text)) < 10Then
  MsgBox "学号必须为10位"
  Text1.SetFocus
  Text1.SelStart = 0
  Text1.SelLength = Len(Text1.Text)
  End If
  End Sub
  
  5 空字段监测
  
  在建立数据库时,有的字段设为必填字段,在输入数据时,必须在此字段或绑定到此字段的控件中输入数值,若该字段未填为空,则保存出现错误(如图3);有的字段设为非必填字段,允许为空值,录入时可为空,没有错误,但如果程序编写中读取该字段数值时未做空字段检验,而直接将读取的数值赋值给某控件属性,程序就会报错(如图4)。
  因此在输入设计时,对设为必填的字段要进行有效性验证,若该字段录入为空值,则要及时警告,提醒操作者改正输入;比如,图书类型代码文本框text1是必填字,编写如下代码进行验证:
  图3
  图4
  Private Sub Text1_LostFocus()
  If Trim(Text1.Text) = "" Then
  MsgBox "图书类型代码不能为空"
  Text1.SetFocus
  Text1.SelStart = 0
  Text1.SelLength = Len(Text1.Text)
  End If
  End Sub
  对设为允许为空的字段,在读取该字段数值时必须做空字段检验,用IsNull函数和Format 函数进行判断是否为空,如果不为空,可直接获取该字段的值,否则不能直接读取该字段的值。[3]
  
  6 主索引字段不包含重复数据的监测
  
  主索引字段是数据表中唯一能标识记录的字段,该字段的值不能为空,否则将出现错误(如图5);主索引字段的值不能出现重复值,否则也将出现错误(如图6)。在输入时必须有对主索引字段进行数据监测的机制。在“图书类型设置”输入设计中“图书类型代码”字段为该数据表的主索引,必须对它进行空值检查和重复数据检查。
  图5
  图6
  重复数据检查,即在“图书类型表”中查询是否存在与当前图书类型代码文本框中输入的数据相同的图书类型代码。具体实现方法如下:
  Private Sub Form_Initialize()
  '实现adodc1数据控件与数据库的连接
  Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  Data Source=" &_App.Path & "\tsk.mdb;Persist Security Info=False"
  Adodc1.CommandType = adCmdTable
  Adodc1.RecordSource = "图书类型表"
  '将字段与控件进行数据绑定
  Set DataGrid1.DataSource = Adodc1
  Set Text1.DataSource = Adodc1
  Text1.DataField = "图书类型代码"
  Set Text2.DataSource = Adodc1
  Text2.DataField = "图书类型名称"
  Set Text3.DataSource = Adodc1
  Text3.DataField = "可借天数"
  End Sub
  Private Sub Text1_LostFocus()
  '实现adodc2数据控件与数据库中的"图书类型表"连接
  Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  Data Source=" _& App.Path & "\tsk.mdb;Persist Security Info=False"
  Adodc2.CommandType = adCmdTable
  Adodc2.RecordSource = "图书类型表"
  Adodc2.Refresh
  '保存当前记录的书签
  n = Adodc1.Recordset.Bookmark
  '在图书类型表中查询与当前记录的图书类型代码相同的记录是否存在,即判断图书类型代碼字段是否出现重复值
  Adodc2.Recordset.MoveFirst
  Adodc2.Recordset.Find "图书类型代码=" & "'" & Trim(Text1.Text) & "'"
  Do While Not Adodc2.Recordset.EOF
  If Adodc2.Recordset.Bookmark <> n Then
  MsgBox "图书类型代码重复"
  Text1.SetFocus
  Text1.SelStart = 0
  Text1.SelLength = Len(Text1.Text)
  End If
  Adodc2.Recordset.MoveNext
  Adodc2.Recordset.Find "图书类型代码=" & "'" & Trim(Text1.Text) & "'"
  Loop
  End Sub
  
  7 结束语
  
  在对数据库的操作中,应当时刻考虑数据是否有效的问题,数据有效性监测应贯穿于数据库操作的整个过程,从而使数据输入规范化、智能化、人性化,提高数据的可靠性。
  参考文献:
  [1]常晋义. 管理信息系统[M]. 北京:中国电力出版社,2003.270.
  [2]张立科. Visual Basic 6.0 数据库开发技术与工程实践[M]. 北京:人民邮电出版社,2004.423.
  [3]张晓辉. SQL Server2000 管理及应用系统开发[M]. 北京:人民邮电出版社,2002.590.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:实时性是嵌入式应用中一个重要的指标,而优先级翻转是影响系统实时性的一个重要因素。可剥夺型内核中,任务以独占方式使用共享资源时,将出现低优先级任务先于高优先级任务运行的现象,即优先级翻转。本文以实时操作系统uC/OS-II为例,分析了产生优先级翻转的原因,阐述了利用互斥信号量解决该问题的原理并通过具体的应用程序对这一方法的可行性进行了验证。  关键词:uC/OS-II;优先级翻转;mutex
期刊
摘要:在微软某些产品成为事实标准的时代,对这些产品发起挑战是一件困难的事情,但并非是不可能的事情,依靠着技术创新,永中集成Office和桌面Linux作出了典范,并且正朝着正确的方向前进,只要二者能够尊重用户使用习惯、提高兼容性和增强扩展性,打破微软垄断将不再是问题。  关键词:技术创新;平台移转  中图分类号:TP316 文献标识码:A文章编号:1009-3044(2007)03-10791-0
期刊
摘要:动态电路的一个特征是当电路的结构或元件的参数发生变化时,可能使电路改变原来的工作状态,转变到另一个工作状态,这种转变往往需要一个过程,在工程上称为过渡过程。本文以动态电路理论中一阶动态电路用三要素的方法分析计算、二阶以及二阶以上的动态电路用拉普拉斯变换分析求解为例,详述了如何分别运用MATLAB语言编程和应用Simulink模块的方法来对电路进行仿真分析和计算。结论表明,应用MATLAB可以
期刊
摘要:简要回顾了常见的办公OA系统结构和开发技术,分析了B/S结构下OA开发的系统架构、办公应用需求以及开发中存在的问题,设计了一种集成办公软件RedOffice的OA系统。实践证明,该系统可以满足办公需求。  关键词:B/S结构;OA系统;办公应用需求;RedOffice  中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2007)03-10744-02    1 引言  
期刊
摘要:本文介绍了VRML与JAVA、JAVASCRIPT通讯的原理、实现方法以及各自的性能特点,重点研究了JAVA、JAVASCRIPT和VRML在三维建模方面的结合应用技术,并给出了实例。  关键词:虚拟现实建模语言;交互;EAI;API  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10764-01    1 引言    近年来,随着网络技术和WWW的发展
期刊
摘要:硬盘并没像PC的“摩尔定律”一样发展,硬盘成高性能PC发展的绊脚石。新兴的SSD技术日益成熟,这种新技术将改进PC系统结构。本文介绍最新SSD技术的进展,并利用SSD技术对传统的PC存储系统结构进行改进的几种方案及优劣比较。  关键词:SSD;存储系统结构;硬盘;Nand Flash  中图分类号:TP334文献标识码:A文章编号:1009-3044(2007)03-10762-02    
期刊
摘要:针对现有车载MP3播放器的不足,设计了一个基于S3C2410芯片的μClinux环境下的车载MP3播放系统。详细介绍了嵌入式μClinux操作系统和由ARM9芯片S3C2410构建的MP3播放器的硬件结构和软件系统。  关键词:车载MP3; μClinux;S3C2410  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)03-10756-02    1 引言 
期刊
摘要:提出了以Visual C++为开发工具,基于OpenGL技术,开发军用物资装载仿真系统的具体方案。采用数值仿真与可视化技术相结合的方法,建立了军用物资装载模型,对物资装载量与装载方式进行仿真,并得出直观的计算结果,为实际货运装载提供理论依据。  关键词:OpenGL;三维模型;虚拟装载  中图分类号:TP391 文献标识码:A文章编号:1009-3044(2007)03-10802-02  
期刊
摘要:随着计算机技术飞速发展,传统的纸质地图在表现形式及信息查詢方面已越来越难以满足人们对地图的使用需求,如何将互联网用于地图信息管理已成为当前研究的重点。本课题主要研究内容是利用Ajax框架开发“web电子地图系统”,满足用户对地图搜索、定位等功能模块在性能方面上的要求。  关键词:Ajax; web电子地图; Hibernate; LRU  中图分类号:TP399 文献标识码:A文章编号:10
期刊
摘要:本文介绍了在Windows的新版本“Windows Vista”中将要使用的新一代标记语言XAML,给出了它的定义、规则。对新一代编程语言的发展方向作了一定的探讨。  关键词:XAML;Windows Vista;标记语言  中图分类号:TP312文献标识码:A 文章编号:1009-3044(2007)03-10774-02    1 引言    下一个版本的Microsoft Window
期刊