在学生信息管理系统的调试中,我遇到的问题如下。

一、SQL注入。

进入管理系统时,相信大家都会遇到SQL注入问题。

在用户名前面加上一个 '  ,就会提示错误,这个错误就是SQL注入。我是这样解决的。

参考ASCII码表

Private Sub txtUserName_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 48 To 57         '只能输入数字Case 65 To 90         '只能输入大写字母Case 97 To 122        '只能输入小写字母Case 8                '只能输入退格Case Else             '否则KeyAscii = 0      '输入无效End Select
End Sub

这样,我就限制了用户名只能输入数字,大小写字母和删除键,其他输入均被视为无效输入。

同样,在限制用户输入类型时,比如班号只允许输入数字,同样可以用这个办法。

二、密码修改优化。

在修改密码界面,我们发现只要是进了系统,任何人都可以随意修改密码,非常不安全,于是,我进行了如下修改。添加了密码验证。

If Trim(txtPassword1.Text)<>Trim(txtPassword2.Text) Then
<span style="white-space:pre"> </span>修改密码
Else
<span style="white-space:pre"> </span>msgbox"原密码错误,请重新输入!,"vbOkOnly+vbexclamation,"警告"
End If

然后在Form Load中显示登录的用户名。

Private Sub Form_Load()Dim txtSQL, MsgText As String'定义变量Dim mrc As ADODB.Recordset Dim name As StringtxtPassword0.Text = ""txtPassword1.Text = ""txtPassword2.Text = ""txtSQL = "select * from user_Info where user_ID = '" & UserName & "'" '连接数据库Set mrc = ExecuteSQL(txtSQL, MsgText) '调用自定义函数name = Trim(mrc.Fields(0)) 'name赋值Label4.Caption = "当前用户名为:" & name '显示复制内容
End Sub
经过这样的修改后,修改密码界面可以显示当前用户名,需要验证原密码。
三、出生日期晚于入学日期。
在添加学籍的时候,如果你的出生日期晚于入学日期是可以添加成功的,但这在现实中是不允许的。于是我用了如下两种方法。
方法1: 
Dim borndate As Date
Dim getdate As Date'定义变量
borndate =Trim(txtBorndate.Text)
getdate =Trim(txtRudate.Text)
If getdate<=borndate then'进行比较MsgBox"入学时间不能早于出生时间,请重新输入",vbOKOnly + vbInformation,"警告"txtRudate.SetFocusExit Sub
End If

方法2:

Dim a As Integer
a = DateDiff("d", txtRudate.Text, txtBorndate.Text)
If a > 0 Then
MsgBox "出生日期应早于入校日期!!请修改……", vbOKOnly, "警告"Exit SubtxtRudate.Text = ""txtRudate.SetFocus
Else

但是,在加入了这样的代码后,会衍生出另外一个问题,错误13,类型不匹配。

经过反复调试,我认为这是因为新加的代码与原代码冲突,新加代码使日期类型发生改变,致使下面的原代码类型不吻合,无法正常运行,我也没什么更好的解决办法,就加了一个 on error goto 语句来跳转了这个错误。算是投机取巧吧。
四、查询表显示不完全。
两个查询表中,myFlexgrid中字体总是显示不完全,这让用户体验非常不好。于是。
首先修改myFlexgrid属性:
通用》行调整模式(Z)》3—Both
接下来在模块中敲下如下代码:
Public Sub AutocolWidth(Form As Form, Grid As MSHFlexGrid)
'同一窗体和控件文字大小
Dim FontSize As Integer
FontSize = Form.FontSize
Form.FontSize = Grid.Font.SizeDim RowNum As Long, ColNum As Long, ColWidth As Double
With Grid '遍历每一列For ColNum = 0 To .Cols - 1ColWidth = 0'遍历每一行,找到最长文本For RowNum = 0 To .Rows - 1If Form.TextWidth(.TextMatrix(RowNum, ColNum)) > ColWidth ThenColWidth = Form.TextWidth(.TextMatrix(RowNum, ColNum))End IfNext'在最长文本长度的基础上增加长度90缇.ColWidth(ColNum) = ColWidth + 150Next
End With
Form.FontSize = FontSize
End Sub

接下来在窗体中敲
AutocolWidth Me, myFlexgrid '使表格适应文字长度

这样,myFlexgrid表格就会随着文本的大小而改变自身大小。
五、课程重复导入问题。
代码如下:

Private Sub cmdAdd_Click()If listallcourse.ListIndex <> -1 ThenCall addlist(listselectcourse, listallcourse.list(listallcourse.ListIndex))End If
End Sub
Private Function addlist(list As ListBox, str As String) As Boolean '只允许单次添加Dim i As LongFor i = 0 To list.ListCount - 1If list.list(i) = str ThenExit FunctionEnd IfNextlist.AddItem straddlist = True
End Function

六、溢出问题。
我遇到的溢出有时间溢出和字符串溢出。
字符串溢出:
首先我们设置一下text的MaxLength属性,让它和数据库中允许最大长度相同就可以了,如果是手机号,还需要修改数据库中的最大长度值。
时间溢出:
时间溢出指的是输入的年份在1753年之前,超出datatime范围,就会出现实时错误6。
解决方法如下:
If DateDiff("d",CDdate(txtBorndate.Text),"1753-01-01">0 ThenMsgBox "出生日期请输入1753年以后的年份!",vbOKOnly + vbExclamation,"警告"txtBorndate.SetFocus
exit Sub

七、错误3021、3001、91。
3021错误主要是因为EOF和BOF的问题,当数据库中无数据时,再次执行这个代码就会出现错误,因为两个指针指到了同一个地方,  这是不允许的,我的解决方法也是加了一个 on error goto  语句,出现msgbox使之提示“无数据!”。
对于错误3001和91大多是因为代码问题,细心点就不会出错,当然,91还可能是数据库连接方面出的问题。
八、总结。
学会站在巨人的肩膀上学习,通过敲学生信息管理系统,培养了我们的调错能力,通过看其他人的博客,增长了我们的知识,加深了我们对数据库的认识。使我们向VB海洋的更深处遨游。

【VB】学生信息管理系统问题总结相关推荐

  1. 【VB】学生信息管理系统5——数据库代码

    这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...

  2. 【VB】学生信息管理系统4——数据库的发展

    由于连接数据的时候出现了很多不懂得问题,为什么要连接,它是怎么连接的,查着查着,就越看越多.又不舍得就这么放过这些问题,所以就耐心看看究竟是怎么回事! 1.自从出现数据库,人们渴望用数据和应用程序做交 ...

  3. 【VB】学生信息管理系统2——窗体设计

    这次学生系统是照着书敲的,先敲完然后开始调试!中途遇到了很多问题,查了很多,这里不容易系统的总结!所以就针对各个问题,各个击破! 问题一:VB 6.0中,状态栏控件(sbstatusbar):右击选项 ...

  4. 【VB】学生信息管理系统1——系统设计怎样开始?

    历时两周完成用VB完成的学生信息管理系统.从刚开始只会敲好玩的小程序到现在完整的做出一个像样的系统.自己的编程思维进行了很大的跨越. 这次的学生信息管理系统让我从整体的角度看到了一个系统设计的过程. ...

  5. vb与数据库(二)之迟到的学生信息管理系统总结

            学生信息管理系统是在7月27号结的项目,结项目时自己就计划写一篇总结于是当时就开了个头,然后将其存入草稿箱,计划是将其完善再发表,结果一拖就拖到现在(拖拉不是病,拖起来要了命!!!). ...

  6. 学生信息管理系统(VB 干货篇三)

    引言 最近一直在学生信息管理系统徘徊不前,不敢进入机房.分析其主要原因是之前的知识学的有点Low,不敢前进,怕进到机房也是停着,所以一直徘徊在这里.因此最近总结了很多VB中的基础知识.比如:常用的函数 ...

  7. vb吐槽班02 不要以为学生信息管理系统很难啊魂淡!

        诶,好的好的,今天依旧是我给大家带来大型情感类电脑连续节目vb吐槽班,我们依旧是吐的飞起,感觉好恶心...     自从上次在csdn发过博客之后,一直生活在水深火热的预习专业课的生活中,毕竟 ...

  8. 【VB】学生信息管理系统3——连接数据库的前提

    在窗体设计和编写程序代码后,需要进行数据库的连接. 大概要做的:下载安装数据库--配置数据源ODBC--测试连接数据库--进行数据库中内容的添加. 关键是这些我都不会,这才是重点! 在学习数据库的过程 ...

  9. 学生信息管理系统中系统登录问题

    在实现学生信息管理系统中,我们会经常遇到不能正常登录的问题,那么这到底是怎么回事呢? 我认为这里有几点主要原因: 1.数据库连接不成功:只有正确的连接数据库,是保证系统正常登录的必要条件! 2.在编写 ...

最新文章

  1. Android ViewAnimationUtils (动画) 的使用
  2. 批量管理服务器,批量分发文件
  3. 《剑指offer》第十八题(在O(1)时间删除链表结点)
  4. Swift 中如何测试驱动开发
  5. 请在请求中携带deviceid参数_日常工作中最容易犯的几个并发错误,你中了几个?...
  6. Error starting static Resources caused by project facet
  7. 201521123032 《Java程序设计》第7周学习总结
  8. axure 画小程序效果图_APP详情页如何用Axure画出来
  9. linux源码中的核心数据结构
  10. 医学诊断报告生成论文综述
  11. 禁用计算机上的所有鼠标加速,win10系统电脑的鼠标加速功能怎么关闭
  12. Vue表格table样式
  13. 2022.02.19四座楼苹果园
  14. P2184 贪婪大陆 线段树(优化:区间修改变为单点修改)
  15. 避免幻读 : next-key锁与MVCC
  16. 解决IOS微信浏览器底部会出现向前向后返回按钮,返回不刷新的问题
  17. 消费者大喊商家欺诈!宝贝ID下的商品违规修改也是定时炸弹!
  18. snipaste截图软件编辑时修改方框粗细
  19. 如何在win10安装libaio,并且使用CFLAGS和LDFLAGS环境变量指示其位置,并且如何设置DS_BUILD_AIO=0禁用async_io...
  20. javascript:加入收藏的代码

热门文章

  1. 70后 80后 90后的20个经典差别!70后的站出来吧
  2. FilterChain流程
  3. day5 from 金角大王
  4. Google将超越微软?打造网络计算机帝国[zz]
  5. BI报表工具: datagear、davinci、cboard、JimuReprot、ureport2
  6. Module “child_process“ has been externalized for browser compatibility and cannot
  7. 一级计算机考试查询成绩ms,计算机一级考试成绩查询
  8. Google云增加root帐户登录
  9. mysql导出建库语句_mysql建库建表,导出表结构
  10. Elasticsearch:如何在 Elastic 中实现图片相似度搜索