学生信息管理系统之错误3021

简介: 学生信息管理系统之错误3021

在敲学生的过程中,遇到了一个3021的错误,如图:


d5008702592785d50148e81e99c59682_2020041511431410.jpg


这个时候就要具体了解一下EOF和BOF了。


EOF(End of File)指当前记录位置位于Recordset对象的最后一个记录之后。


BOF:(Before of File)指当前记录位置位于RecordSet对象的第一个记录之前。


EOF和BOF都返回一个布尔值,使用ADO连接数据库进行查询的时候,数据库将查询结果返回查询端,在查询端的内来存里面就会有一个列表,这个列表存放的就是查询的结果。这个内存中的列表就是数据集。在你的程序里面rs就是表示这个数据集。bof表示rs当前的指针是指在了数据集的前面,比如数据集里面有编号为1,2,3,4的4条记录,但是rs指向的编号是-1,这样就会符合了bof的情况。同理,当rs的指针指向5,而第五条记录并不存在,这样就会产生了eof的情况。


如果同时产生了bof和aof的情况,就是源说rs的指针既在上界之外也在下届之外,这样只有一种情况,就是rs所代表的数据集是空的,zhidao这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。


你的情况估计是sql语句查询出来的值是空的,因此数据集也是空的,在读取rs数据集里面的值的时候就会报这个错误。

使用 if rs.bof and rs.eof then 这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问。


当然,我所遇到的问题就是当我把加进去的学籍信息都删掉之后,再点开修改学籍的窗体就会报错,这个原因就是数据库里面第一项没有数据,而BOF是指向第一个记录的,所以就会报错(个人是这样理解的,理解的有偏差还希望各位大佬指点一下),所以再frmmain窗体中就要设置,再修改学籍时,如果里面是空的,要提示先添加学籍信息等。如图:


fa35d7131a578dbb18f39d85fd4a5e35_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTMwOTE1NQ==,size_16,color_FFFFFF,t_70.png


(PS:另外找到一篇很不错文章讲的很详细,大家也可以参考一下:https://blog.csdn.net/xyf13920745534/article/details/77622724


相关文章
|
8月前
|
Java
学生信息管理系统1
学生信息管理系统
61 0
|
8月前
|
Java
学生信息管理系统2
学生信息管理系统
68 0
|
7月前
|
C++
学生信息管理系统(C++实现)
学生信息管理系统(C++实现)
|
SQL 数据库 数据安全/隐私保护
学生管理系统错误(2)——“-2147217887”问题
学生管理系统错误(2)——“-2147217887”问题
|
8月前
|
Linux C语言
学生信息管理系统——c实现
学生信息管理系统——c实现
|
Oracle Java 关系型数据库
JSP停车场车位管理系统myeclipse开发oracle数据库BS模式java编程网
JSP 停车场车位管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助servlet+bean+dao (mvc模式开发),系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Oracle 10g,使用java语言开发系统主要采用B/S模式开发。
64 0
|
小程序
综合题-学生信息管理系统
综合题-学生信息管理系统
143 0
|
SQL 数据库连接 数据库
学生信息管理系统——实时错误“91”
学生信息管理系统——实时错误“91”
学生信息管理系统(3)——实时错误 ‘3021
学生信息管理系统(3)——实时错误 ‘3021
91 0