日期:2014-05-16  浏览次数:20452 次

做学生管理系统中中遇到的问题汇总(1)

       我们的学习是i+1式的,一点点的学习,一点点的进步,不慌不忙,一步一个脚印,就像去年寒假的时候对vb进行了学习,接着就让我们自己动手去实现——九期提高班作品展中一个个小软件就是我收获的硕果,回忆起来我们的寒假过的是那么的充实,今年暑假也不例外,我们设计到的有对英语SB的学习,还有数据库的学习,看完了耿建玲老师的视频,敲完了5个实例还有相应的举一反三以后我们接触了学生管理系统,耿建玲老师的视频中理论较多些,我们再动手去实现一下,理解的就更透彻了。

        拿到学生管理系统模版以后,先吧程序调通了,看看里边的功能,画了画里边的联系,就准备开始自己制作了,基本上我的每一个窗体都会遇到相应的问题 ,虽然针对一个窗体调通了,但是当我把所有的窗体都完成以后再运行起来就又出现了相应的问题,下面就是我遇到的问题中的三个问题。


1.登陆界面

 这里遇到的问题是当我输入用户名和密码的时候,如果你输入正确的话能顺利的进入系统,但是如果一不小心输入错误的话,程序就会瘫了,这是为什么呢 ?大家帮我想想办法吧,谢谢了。


2.日期.(大意惹的祸)


开始我以为是代码错了呢,函数没用正确还是格式错了什么的,这是时间函数部分代码

If Not IsDate(txtBorndate.Text) Then
          MsgBox "出生时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
          txtBorndate.SetFocus
       Else
          txtBorndate = Format(txtBorndate, "yyyy-mm-dd")
          If Not IsDate(txtRudate.Text) Then
             MsgBox "入校日期应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
             txtRudate.SetFocus
          Else
               txtRudate = Format(txtRudate, "yyyy-mm-dd")
               txtSQL = "select*from student_Info"
               Set mrc = ExecuteSQL(txtSQL, Msgtext)
               
               mrc.AddNew
               mrc.Fields(0) = Trim(txtSID.Text)
               mrc.Fields(1) = Trim(txtName.Text)
               mrc.Fields(2) = Trim(comboSex.Text)
               mrc.Fields(3) = Trim(txtBorndate.Text)
               mrc.Fields(4) = Trim(comboClassNo.Text)
               mrc.Fields(5) = Trim(txtTel.Text)
               mrc.Fields(6) = Trim(txtRudate.Text)
               mrc.Fields(7) = Trim(txtAddress.Text)
               mrc.Fields(8) = Trim(TxtComment.Text)
               mrc.Update
               MsgBox "添加学籍信息成功!", vbOKOnly + vbExclamation, "添加学籍信息"
               mrc.Close
               Me.Hide
               
          End If
       End If


        看了代码,看了看我输入的数据也没有发现有错误,奇怪啊这是怎么回事呢?

        代码没有错误添加信息的时候逻辑上出现问题了?我把出生日期写的比入校时间还晚,呵呵,就弹出了相应的错误,但是实在看不出来是哪句代码起的这个作用啊,看来设计的还是有漏洞啊,问了问加翰,才恍然大悟啊确实是输入的信息有问题,我输入了一个1345年这个不在datetime的范围中,所以提示错误

从数据库中看两个日期函数属于datetime类型的

       而datetime是这样定义的,Datetime数据类型用于存储日期和时间的结合体,它可以存储从公元1753年1月1日零时起到公元8888年12月31时59分59秒之间的所有日期和时间。我输入的年份没在这个范围之中所以出错了,问题就是这么简单,但是当你大意的时候它总会让你吃不消。

      解决问题的时候也了解了其它两个函数也是用于SQL Server 的使用过程中的,但是不常用,与大家分享一下留着以后用,

 1> isnumeric(expression )

-- 返回值 1 | 0,判断是否是数字类型。数值类型包括(int、bigint、smallint、tinyint、numeric、money、smallmoney、float、decimal、real)

示例:

select * from tablename

where isnumeric(columnname)<> 1;