学生信息管理系统之问题汇总
学生信息管理系统完工已经有一段时间了,但是问题却像小草一样,野火烧不尽,春风吹又生。下面我们一起来看看几个常见的问题,这些问题你是否也曾遇到过。
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,即加载时未进行过删除
以上这些问题都是我们在做系统时,最容易忽视的,也是最常见的,想要作为优秀设计人员,我们要学的不仅仅是一些算法,更不要为了做程序而做程序,在这个过程中,我们要不断的学习和总结,像这样的错误在设计初期就应该避免。
出现这些问题,也告诉我们以后做任何事情都需要有前瞻性,不仅仅是设计软件,在学习和生活中,做事情之前,想一想这件事情会出现什么错误,什么困难,提前避免和处理,让自己的效率得到提高。
- 9楼liushuijinger2小时前
- 不断积累
- Re: hejingyuan62小时前
- 回复liushuijingern恩
- 8楼lfmilaoshi3小时前
- 遇到的 问题越多,收获越多。。。米老师
- Re: hejingyuan63小时前
- 回复lfmilaoshin恩
- 7楼aboy1233小时前
- 有错误才会有动力去解决
- Re: hejingyuan63小时前
- 回复aboy123n恩
- 6楼xvshu4小时前
- 加油
- Re: hejingyuan64小时前
- 回复xvshun呵呵
- 5楼han_yankun20094小时前
- j精髓
- Re: hejingyuan64小时前
- 回复han_yankun2009n呵呵
- 4楼shuihuojiao5小时前
- 基础
- Re: hejingyuan64小时前
- 回复shuihuojiaon恩
- 3楼liujiahan6296295小时前
- 猛!
- Re: hejingyuan65小时前
- 回复liujiahan629629n呵呵
- 2楼linlin802306196小时前
- 发现问题、解决问题的无缝连接~
- Re: hejingyuan66小时前
- 回复linlin80230619n嘿嘿
- 1楼lishehe6小时前
- 加油
- Re: hejingyuan66小时前
- 回复lishehen加油