asp吧+ 关注 关注: 帖子:16

  

ASP中rs.AbsolutePosition的值为-1的问题解决方法

  • 枫之精英

    问题描述

    最近在开发ASP项目时发现,当do while not rs.eof时,rs.AbsolutePosition的值全部是-1。

    这根你的conn到底是1,1还是3,3没有任何关系。

    最终查明原因是在数据库的类型问题上。Access就没有这个问题,SQL就会出现这个问题,有人说是微软BUG,无从查证。所以要么换数据库类型为Access,可是我们必须用SQL数据库怎么办?

    案例分析

    do while not rs.eof

    rsponse.write "当前记录是第"&rs.AbsolutePosition&"条"

    if rs.AbsolutePosition=rs.RecordCount then

    rsponse.write "当前记录是最后一条"

    end if

    rs.movenext

    loop

    上面这个循环输出在SQL数据库中,我们会发现rs.AbsolutePosition的值永远是-1

    当我们有时候要做页面导航循环特效或底部导航循环特效,判断记录是否为最后一条数据时,怎么办?比如:【关于我们 | 帮助教程 | 版权声明】当我们想判断“版权声明”这条记录是否为最后一条,如果为最后一条就不添加“ | ”分隔符,所以我们需要通过另一种方法解决。

    实现方法

    i=1 '--首先定义一个i值为1,这样的话在下面做循环输出记录时,第一条就是i=1了。

    do while not rs.eof

    rsponse.write "当前记录是第"&i&"条"

    if i=rs.RecordCount then

    rsponse.write "当前记录是最后一条"

    end if

    i=i+1 '--每次i的值都+1,这样下一条数据就是2。所以我们抛弃了用rs.AbsolutePosition方法获取当前记录集是提几条的判断方法。改为用每次循环i+1的方式类判断记录是第几条!

    rs.movenext

    loop

    问题总结

    这是精英网技术人员在开发时遇到的一个问题,通过以上解决方案我们可以看出,未必有时候必须使用ASP的自带方法来实现和解决问题,我们遇到问题的时候可以动用思维通过其他途径来实现。


    1楼  2019/7/3 16:02:12  回复

  发表回复

    发帖