学生管理错误信息

一、无法连接服务器

原因:a.SQL Server服务没有打开

b.SQL Server使用了"仅 Windows"的身份验证方式

解决办法:

       a.开启SQL Server服务,右键计算机-管理-服务和应用程序-SQL Server配置管理器-SQL Server服务

b.首先用windows身份验证登录

      然后在服务器上右击属性,进入属性页,在安全性中设置服务器身份验证。


扫描二维码关注公众号,回复: 1151513 查看本文章
      断开服务器连接,重新选择SQL身份验证,用户名为sa,密码为自己设置的密码。

二、对象错误 

实时错误424,要求对象:这种错误的原因是对象不存在或对象命名错误。

我的错误原因是控件的命名与代码不一致,将控件的名称改一下就可以了。


三、实时错误3021



1.出现此错原因:

         a.查找的数据库记录为空,可以用rs.RecordCount 来判断数据是否等于0

         b.查找到数据后,用 Del 命令删除记录后,再引用 Fields 后会出现错误.

         c.已经用MoveFirst 或用MovePrevious 命令移动至数据库开始后再用 MovePrevious 命令.

         d.已经用MoveLast 或用 MoveNext 命令 移动至数据库开始后再用 MoveNext 命令.

 

我出现的错误是因为数据库记录为空,SQL语句不对,导致查询的记录为空。修改一下SQL语句就可以了,注意SQL语句的书写格式规范。

 

图片中出现了BOF和EOF,不是很清楚这个东西是什么,之前验收红皮书实例的时候师傅问过我这个问题,当时明白了,但是没总结,又忘了,今天也顺便总结一下吧。


2.BOE与EOF的含义:

EOF,英文译名 End Of File,指示当前记录位置位于Recordset 对象的最后一个记录之后。

BOF,英文译名 Before of File,指示当前记录位置位于 Recordset 对象的第一个记录之前。

比如一个1、2、3、4代码中定义了mrc的四个数据集,按如下排列:

                                                              

   -1
    1
    2
    3
    4
    5

当mrc指向-1的时候就满足了BOF的情况;当mrc指向5的时候就满足了EOF的情况;当BOF和EOF都满足是,记录为空。


3.BOF与EOF的比较:


EOF BOF
True 当前行在最后一行的后面,无记录 当前行在第一行之前,无记录
False 当前行在最后一行或其前面,有记录 当前行是第一行或其后面,有记录



四、实时错误383


这个是由于我将combox控件的Style属性变成了2-Dropdown List 的下拉式列表式,只有只读属性。

combox控件的style 属性有三种:

0-Dropdown :包括一个下拉列表和一个文本框,可以选择也可输入文字;

1-Simple :简单组合框,包括一个文本框和一个不会下拉的列表;   

2-Dropdown List :只选组合框。

出现错的代码(其中一处):

mrc.AddNew
   mrc.Fields(0) = Trim(txtCourseno.Text)
   mrc.Fields(1) = Trim(txtCoursename.Text)
   mrc.Fields(2) = Trim(comboCoursetype.Text)
   mrc.Fields(3) = Trim(txtcoursedes.Text)
    '更新数据库
   mrc.Update
    '关闭数据库对象
   mrc.Close
   MsgBox "添加课程信息成功!", vbOKOnly + vbExclamation, "添加课程信息"
   Unload Me


修改代码如下:

mrc.AddNew
   mrc.Fields(0) = Trim(txtCourseno.Text)
   mrc.Fields(1) = Trim(txtCoursename.Text)
   comboCoursetype.AddItem "必修"
   comboCoursetype.AddItem "考查"
   mrc.Fields(3) = Trim(txtcoursedes.Text)
    '更新数据库
   mrc.Update
    '关闭数据库对象
   mrc.Close
   MsgBox "添加课程信息成功!", vbOKOnly + vbExclamation, "添加课程信息"
   Unload Me

就是将所有关于combox控件的类似代码修改成添加的,即comboCoursetype.AddItem ,要不然数据读不进去。

 

五、实时错误3265


错误代码为:

Private Sub viewData()
   txtSID.Text = mrc.Fields(0)
   txtName.Text = mrc.Fields(1)
   comboGender.Text= mrc.Fields(2)
   txtBorndate.Text = Format(mrc.Fields(3), "yyyy-mm-dd")
   comboClassno.Text= mrc.Fields(4)
   txtTel.Text = mrc.Fields(5)
   txtRudate.Text = Format(mrc.Fields(6), "yyyy-mm-dd")
   txtAddress.Text = mrc.Fields(7)
   txtComment.Text = mrc.Fields(8)
End Sub

更改为如下代码:

Private Sub viewData()
   txtSID.Text = mrc.Fields(0)
   txtName.Text = mrc.Fields(1)
   'comboGender.AddItem mrc.Fields(2)
   comboGender.AddItem "男"
   comboGender.AddItem "女"
   txtBorndate.Text = Format(mrc.Fields(3), "yyyy-mm-dd")
   comboClassno.AddItem mrc.Fields(4)
   txtTel.Text = mrc.Fields(5)
   txtRudate.Text = Format(mrc.Fields(6), "yyyy-mm-dd")
   txtAddress.Text = mrc.Fields(7)
   txtComment.Text = mrc.Fields(8)
End Sub

因为combox的只读属性使得数据没有添加进去,没有对应的字段存在,需要改成添加形式的。


六、实时错误'-2147217887(80040e21)':多步OLE DB操作产生错误。



填的数据不符合或者没有转换成数据库相应字段的数据类型或约束。添加学号和电话的时候,字符长度超出了表的限制。我输入的学号和电话号码的字符长度是11,而表里限定的长度是10位:




解决方法:重新设计表

点开SQL Server中的数据库-表:右键-设计就可以看到上图:


但是更改char后,又出现如下问题:


解决办法如下:

打开SQL Server工具-选项-设计器,勾选“阻止保存要求重新创建表的更改”这一选项就可以更改了。


七、实时错误91


出错代码:

'判断是否有重复记录
txtSQL="select * from student_Info where student_ID ='" & Trim(txtSID.Text) & "'"
Set mrc=ExcecuteSQL(txtSQL,MsgText)
If mrc.EOF =False Then
      MsgBox "学号重复,请重新输入!",vbOKOnly + vbExclamation ,"警告"
      mrc.Close
      txtSID.SetFocus
Else

错在ExecuteSQL这个函数里面,数据没有传过来,导致mrc显示的是空值nothing.
解决办法:将Set mrc= ExecuteSQL(txtSQL,MsgText)里面的逗号改成英文符号就可以了。



 




猜你喜欢

转载自blog.csdn.net/f_kld/article/details/76338620