学生信息管理系统之问题汇总

    学生信息管理系统完工已经有一段时间了,但是问题却像小草一样,野火烧不尽,春风吹又生。下面我们一起来看看几个常见的问题,这些问题你是否也曾遇到过。

 

1,对于文本框的内容是否设置了字符长度

  由于数据库中的内容有长度限制,那么当我们在文本框中不做任何操作时,会出现这样的提示

     

2,没有查询结果时,是否注意了要弹出提示

   在做学生信息管理系统时,查询信息你是否注意到了呢?如果你是用户,当你查询结果时,它时时不出来,是没有信息呢,还是仍在加载?所谓全心全意为人民服务就是要我们设身处地的为用户着想。

 

3,选择列表框:需要选择的内容是否还可以输入

   对于下拉列表框的使用,不是我们不会,只是我们没有去思考,理所当然的认为只要功能实现,我们就大功告成了,如果是这样我们就大错特错了,不是都说细节决定成败,当然现在还不至于那么严重,只是会告诉你不合格,继续改而已,但是任何习惯的养成都是我们日常点滴的积累,如果平时都不去注意,那么你想如何成为一名优秀的程序员呢?

    当然在设置过程中,还出现了一段小插曲,我们知道,列表框的Style属性是设计时属性,那么如果我们将它改成只读的,那么当修改时,需要从数据库读出数据显示的时候就会提示我们错误

    

    对于这个问题,我们也想到了一个好玩的方法解决,来看一下这段代码,嘿嘿!

Private Sub ComGra_KeyPress(KeyAscii As Integer)
    KeyAscii = 0          '不允许用户输入
End Sub	

 

4,当表中没有任何记录

    我们先来看看它的错误提示

     

   对于这个问题,一种方法我们可以添加错误处理,另一种方法即在显示窗体前加如下代码

 

Private Sub modifycoursemenu_Click()
    Dim txtsql As String
    Dim msgtext As String
    Dim mrc As ADODB.Recordset
    
       txtsql = "select * from course_info "
       Set mrc = executesql(txtsql, msgtext)
       If mrc.EOF And mrc.BOF Then
          MsgBox "数据为空,请先添加数据", vbOKOnly + vbExclamation, "警告"
        Exit Sub
       Else
         frmmodifycourseinfo.Show
       End If
     
End Sub


5,多次点击修改更新时,是否出错

   我们先来看一下出现这个问题的原因,错误代码

Dim txtsql As String
 Dim msgtext As String
 Dim mrcc As ADODB.Recordset
       mrc.Delete      '删除以前的那个表,然后重新输入,更新
        
        txtsql = "select *from class_info where class_no= ' " & Trim(TxtNum.Text) & " '"
        Set mrcc = executesql(txtsql, msgtext)
        If mrcc.EOF = False Then    
         'mrcc的作用主要是查找注册表里是否还存在着重新输入的内容
          MsgBox "输入班号重复,请重新输入", vbOKOnly + vbExclamation, "警告"
          TxtNum.SetFocus
          mrcc.Close
        Else
           mrcc.Close   '不存在的话,就将输入的内容添加到mrc中
           mrc.AddNew
           mrc.Fields(0) = Trim(TxtNum.Text)
           mrc.Fields(1) = Trim(ComGra.Text)
           mrc.Fields(2) = Trim(TxtTec.Text)
           mrc.Fields(3) = Trim(TxtGra.Text)
           mrc.Update
           MsgBox "修改班级信息成功", vbOKOnly + vbExclamation, "警告"
             Call ViewData
           
           Frame2.Enabled = True
           TxtNum.Enabled = False
           ComGra.Enabled = False
           TxtTec.Enabled = False
           TxtGra.Enabled = False
            
           Frame1.Enabled = True
           CmdFir.Enabled = True
           CmdPre.Enabled = True
           CmdNext.Enabled = True
           CmdLast.Enabled = True
           mcclean = True
        End If
                
End Sub

 

   在这个过程中,聪明的你不难发现,如果当输入的班号相同时,它就会重复删除两次,提示错误     

 

错误改正,代码如下:

Dim txtsql As String
 Dim msgtext As String
 Dim mrcc As ADODB.Recordset
 Dim update As Boolean

 If update = False Then  '还未进行过删除
         mrc.Delete      '删除以前的那个表,然后重新输入,更新
         update = True     '已经删除了一次
         
 End If
        
        
   txtsql = "select *from class_info where class_no= ' " & Trim(TxtNum.text) & " '"
     Set mrcc = executesql(txtsql, msgtext)
     If mrcc.EOF = False    Then                                        
      'mrcc主要是查找注册表里是否还存在着重新输入的内容
       MsgBox "输入班号重复,请重新输入", vbOKOnly + vbExclamation, "警告"
       TxtNum.SetFocus
           
       mrcc.Close
     Else
           mrcc.Close   '不存在的话,就将输入的内容添加到mrc中
           mrc.AddNew
           mrc.Fields(0) = Trim(TxtNum.text)
           mrc.Fields(1) = Trim(ComGra.text)
           mrc.Fields(2) = Trim(TxtTec.text)
           mrc.Fields(3) = Trim(TxtGra.text)
           mrc.update
           mrc.MoveLast
           MsgBox "修改班级信息成功", vbOKOnly + vbExclamation, "警告"
           update = False         '写回没有删除的状态
            
           Call ViewData
           
           Frame2.Enabled = True
           TxtNum.Enabled = False
           ComGra.Enabled = False
           TxtTec.Enabled = False
           TxtGra.Enabled = False
            
           Frame1.Enabled = True
           CmdFir.Enabled = True
           CmdPre.Enabled = True
           CmdNext.Enabled = True
           CmdLast.Enabled = True
           mcclean = True
     End If
               
End Sub

  

   当然在窗体加载时将update=false,即加载时未进行过删除

   以上这些问题都是我们在做系统时,最容易忽视的,也是最常见的,想要作为优秀设计人员,我们要学的不仅仅是一些算法,更不要为了做程序而做程序,在这个过程中,我们要不断的学习和总结,像这样的错误在设计初期就应该避免。

   出现这些问题,也告诉我们以后做任何事情都需要有前瞻性,不仅仅是设计软件,在学习和生活中,做事情之前,想一想这件事情会出现什么错误,什么困难,提前避免和处理,让自己的效率得到提高。

 

  

评论 51
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值