关闭

学生信息系统---优化

标签: 学生信息管理系统优化
521人阅读 评论(24) 收藏 举报
分类:

   在验收的时候师父提出了好多问题,程序运行没有Bug是远远不够的,我们作为一个软件开发人员,要站在用户的角度思考问题,我们做出来的东西要方便用户的使用,而不是我们会用就行,所以我们要对我们的系统进行不断地优化。

 

一、防止SQL注入

   师父在验收的时候在登陆界面的用户名中输入了“ ’ ”,然后登陆就出现了”91”的错误,这就出现了SQL注入的问题

什么是SQL注入(百度百科里关于SQL注入的解释、攻击和预防)

在现阶段,我想出的解决办法是,用键盘事件来使这个键输入时弹出警告信息,代码如下

   

PrivateSub txtUserName_KeyPress(KeyAscii As Integer)
   If KeyAscii = 39 And 33 Then
        MsgBox "是非法字符,请输入合法字符!", vbOKOnly + vbExclamation, "警告"
        txtUserName.SetFocus
        txtPassword.Enabled = False
   Else
        txtPassword.Enabled = True
   End If
   
End Sub

二、Combobox只能选择不能输入,且有默认项

   在我们使用一些软件,添加个人信息是可选择的项都是有默认值的,这样就为用户带来了便捷

1.讲combobox属性框的Style 属性设为2-Drop down list

2.在代码中添加(设置第一项为默认值)

<span style="white-space:pre">	</span>If comboSex.ListCount > 0Then  
    <span style="white-space:pre">		</span> comboSex.ListIndex = 0
  <span style="white-space:pre">	</span>End If

三、优化窗体大小

   窗体有子窗体和主窗体,子窗体应该把最大化和最小化窗体的按钮去掉,因为子窗体是在主窗体里面的,所以应该最大化最小化。这个只需把Maxbutton和Minbutton的值改为false即可。而且子窗体不能改变大小,所以我把窗体都设为固定大小,则设计时为多大的那么运行出来就是多大的。

四、在添加日期时添加日历控件

   因为如果让用户自己输入日期,那么就会出各种各样的错误,可能是格式错误可能是输入的额日期不合法,所以我们添加一个日历按钮就会省好多事,用户添加方便,我们写代码的时候也可以简化,就不用写那么多验证的代码了。

1.在部件中添加Microsoft Windows Common Controls-2 6.0 如下图


2.添加MonthView控件


3.代码中写

Private SubMonthView1_DateClick(ByVal DateClicked As Date)
   txtRudate.Text = MonthView1.Year & "-" &MonthView1.Month & "-" & MonthView1.Day
   MonthView1.Visible = False
End Sub
 
Private Sub txtRudate_Click()
   MonthView1.Visible = True
End Sub


五、表格MSHFlexGrid去掉第一行

    在源码中固定了两行,这是没有什么用的。

     1.在右击—属性—将固定行改为0,还有就是将行设为1,否则就会有空行;

     2.代码中修改(原来的值)

<span style="white-space:pre">	</span>With myflexgrid
            .Rows = 1(2)
            .CellAlignment = 4
            .TextMatrix(01, 0) = "考试编号"
            .TextMatrix(01, 1) = "学号"
            .TextMatrix(01, 2) = "姓名"
            .TextMatrix(01, 3) = "班号"
            .TextMatrix(01, 4) = "课程名称"
            .TextMatrix(01, 5) = "分数"
        End With


六、在修改密码时,要求验证原密码,防止自己的账户被别人修改密码,导致自己无法访问

如图所示

 

代码如下:

Private Sub cmdOK_Click()
  Dim txtSQL, MsgText As String
  Dim mrc As ADODB.Recordset
  Dim ctrl As Control
  '判断是否为空
  If Trim(txtPassword1.Text) <> Trim(txtPassword2.Text) Then
     MsgBox "两次密码输入不一致!",vbOKOnly + vbExclamation, "警告"
     txtPassword1.SetFocus
     txtPassword1.Text = ""
   Else
     txtSQL = "select * from user_info where user_ID='" &UserName & "'"
     Set mrc = ExecuteSQL(txtSQL, MsgText)
     
     If Trim(txtPassword3.Text) <> Trim(mrc.Fields(1)) Then
        MsgBox "原密码输入错误,请重新输入!", vbOKOnly + vbExclamation, "警告"
        txtPassword3.SetFocus
        txtPassword3.Text = ""
        txtPassword1.Text = ""
        txtPassword2.Text = ""
     Else
        mrc.Fields(1) = txtPassword1.Text
        mrc.Update
        mrc.Close
        MsgBox "修改密码成功!", vbOKOnly + vbInformation, "修改密码"
        Me.Hide
        txtPassword1.Text = ""
        txtPassword2.Text = ""
        txtPassword3.Text = ""
   End If
 
End If
End Sub


七、在修改密码时,提醒用户当前登录的用户是哪个,防止给别的用户修改密码

如图所示

代码如下:

Private Sub Form_Load()
   Dim txtSQL As String
   Dim MsgText As String
   Dim mrc As ADODB.Recordset
   Dim name As String
   
   txtSQL = "select * from user_info where user_ID='" &UserName & "'"
   Set mrc = ExecuteSQL(txtSQL, MsgText)
   
   name = Trim(mrc.Fields(0))
   Label4.Caption = "当前用户名为:" &name
       
End Sub


八、修改信息时 ,当数据无记录时添加提醒。

   如果删除最后一条记录在点那八个命令按钮就会报错,我在八个命令按钮的代码中都添加了,如果查询无记录就提示没有记录,否则就执行原来的代码。这样代码量就变多了,有好的解决方法可以交流哦!代码比较多但是比较简单就不粘到这里了。

九、在添加课程信息时,防止添加重复信息

   按着源码敲完运行的时候,发现只要按设置课程就会出来重复的课程,在添加课程的时候如果一直点也会一直加,这样的系统是不行的。我自己调试的时候就发现了这个问题,当时就想这个系统设置的不好,却没有想我是这个系统的设计者,因为参照了源码写的就觉得不是自己的东西,明明发现了这个问题却不去想办法解决说明,这个学习态度和积极性还是不够的。不讲究才是发想的原动力,不能因为懒得弄而将就,否则谁还用我做的软件呀。

代码如下:

   防止添加课程的时候添加重复课程

   防止设置课程时,加入重复的课程

十、输入数字的文本框输入别的字符就会提示

    像学号只能输入数字,如果输入别的就会弹出提示,代码如下:

Private Sub txtSID_KeyPress(KeyAsciiAs Integer)
 
   If KeyAscii = 8 Then
   Exit Sub
 
        Select Case KeyAscii
   
            Case 48 To 57, 8, 13
   
            Case Else
   
            KeyAscii = 0
   
        End Select
   Else
        MsgBox "学号请输入数字!"
   End If
  
End Sub


   总结:我们是软件的设计者所以我们应该站在用户的角度来考虑问题,要将软件设计的方便于用户,而不是通过约束用户来达到想要的效果。这是我们接触的第一个完整的系统,所以我们可以从这个系统中学到怎样站在用户的角度思考问题。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:30715次
    • 积分:5297
    • 等级:
    • 排名:第5665名
    • 原创:87篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2229条
    博客专栏
    最新评论