当前位置: 首页 > 图文教程 > 网络编程 > ASP > 实验Recordset.Movenext,Recordset.Previous,Recorset...等移动记录

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

ASP 中的 实验Recordset.Movenext,Recordset.Previous,Recorset...等移动记录


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 176 ::
收藏到网摘: n/a

  我在实验Recordset.Movenext,Recordset.Previous,Recorset.......等移动记录的时候遇到了困难.
我用Access做后台数据库,通过一个查询条件查询得一个记录集,我想用一个表格实现记录的逐条浏览(不是一组记录分页浏览). 即"共查到**条记录,现在是第*条",单击"Next"按钮后下一条记录的内容显示在表格中.....

我用如下代码实现(见最后)

发现若将Rst.Open "select * from 某表 where 从某个Form获取的查询条件"
改成  Rst.Open "select * from 某表"(相当于不做查询动作)后, 记录的浏览功能才得以实现.
否则总是出现" EOF或BOF为真 "的错误提示.可我明明可以从"某表"中 "select... where..."到好几个记录的!

总之如何将"记录的逐条浏览"和"select * from 某表 where 从某个Form获取的查询条件" 结合起来?

望予以指点为感!

杨利
2000/4/13

程序代码:

<%@ LANGUAGE=VBScript %>
<!-- #Include file="ADOVBS.INC" -->
<html>
<head>
<title></title>
</head>
<body BGCOLOR="#FFFFF0">
<h3 align="center"><font face="隶书" color="#004080"><big>现在您可以编辑以下记录</big></font></h3>
<!-- 在服务器上创建 Connection 和 Recordset 对象 -->
<%
'创建并打开 Connection 对象。
Set cn=Server.CreateObject("ADODB.Connection")
    cn.Open "DSN=数据库名"
'创建并打开 Recordset 对象。
Set Rst = Server.CreateObject("ADODB.Recordset")
    Rst.ActiveConnection = cn
    Rst.CursorType = adOpenKeyset
    Rst.LockType = adLockOptimistic   
Rst.Open "select * from 某表 where 性别='"&request.form("t1")&"'"(执行这句大有问题)
Rst.Open "select * from 某表 where 性别='男'"(执行这句有点问题)
Rst.Open "select * from hr_base"(执行这句没有问题)
' 检查 Request.Form 集合以查看所记录的任何移动。
If Not IsEmpty(Request.Form("MoveAmount")) Then
' 跟踪该会话的移动数目和方向。
   Session("Moves") = Session("Moves") + Request.Form("MoveAmount")
   Clicks = Session("Moves")
'移动到上一个已知位置。
   Rst.Move CInt(Clicks)
'检查移动为 + 还是 - 并进行错误检查。
      If CInt(Request.Form("MoveAmount")) = 1 Then
         If Rst.EOF Then
            Session("Moves") = Rst.RecordCount
            Rst.MoveLast
         End If   
         Rst.MoveNext
      End If
      If Request.Form("MoveAmount") < 1 Then
         Rst.MovePrevious
      End If
'检查有无单击 First Record 或 Last Record 命令按钮。
      If Request.Form("MoveLast") = 3 Then
         Rst.MoveLast
         Session("Moves") = Rst.RecordCount
      End If
      If Request.Form("MoveFirst") = 2 Then
         Rst.MoveFirst
         Session("Moves") = 1
      End If
End If
' 对 Move Button 单击组合进行错误检查。
      If Rst.EOF Then
         Session("Moves") = Rst.RecordCount
&nbs