学生管理系统从上学期考试的那段时间开始敲的,于是就被暂时搁置了一段时间,以至于用了这么长时间去完成,今目标上延期了6次(每次申请延期都很纠结~~~~~~~)。

   废话不多说啦,就说说期间的常见问题吧。

    常见问题

   问题一: BOF或EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

 

                                                                              

        这个问题是从一开始,每一个窗体敲完后,最有可能出问题的错误。

    这个错误是应为1、没有数据可用(数据库中没有信息),2、这是就要往数据库中添加信息时,没有连接到数据库中才会出现的结果。

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

       

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

 

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

           

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

 

       2.BOFEOF是分别指向记录集的起始地址和结束地址。你确定这两个指针有指向吗?这两个指针要同时为“真”吧。还有如果你确认以上是正确的,那么你是否已经打开相应的记录集呢?还有就是选择一个已有用户名来调试。 

       3.在你查询的表中没有数据,可能是SQL的毛病也可能是真的没有数据。只要加上一个出错处理就可以了。一定要将数据库打开,并检查其中有东西后才不会出现问题。

      on error resume next

      rss.movefirst

      if err=3021 then

      response.write "无数据!"

      end if

      出现这样的错误,那么其中第12行 mrc.movenext就要删除了,因为如果你的表中有一个数据的话,就会因为没有下一个数据而出现这种错误。(没有数据的情况!)

      

 

           这样的代码才正确。

      这个学生管理系统因为不规范、敲错了造成这样的问题的情况有很多,让你们看看是不是也犯了这样的错误呢!

    

     里面的adlockoptimistic是不是给敲成了adlockbatchoptimistic?

   

    问题二:多步操作产生错误。如果可能,请检查每个LOE DB的状态值。没有工作被完成。

                           

      出现这个问题其实很简单。就是数据类型不对或者溢出。

    问题三:行句柄引用了一个已被删除的行或被标识为删除的行。

                              

     出现这种情况是因为:

           

            

              上下一眼就可以看得出来的是:mrc.bookmark=mybookmark 写反了,但是这看到这个就太片面啦!问题的原因就是查询功能没有找到这个数据源。

       

             

   

posted on 2013-07-31 15:26  ProgramMonkey  阅读(397)  评论(0编辑  收藏  举报