"if not rs.eof and not rs.bof then"怎么理解?见asp实例

谁能详细解释asp中"if not rs.eof and not rs.bof then"怎么理解?

2007-06-10 21:11 zhbxj2002  |  分类:其他编程语言  |  浏览4349次
谁能详细解释asp中"if not rs.eof and not rs.bof then"怎么理解?

 
   
rs.eof=true时表明指针已移到最后记录,不能往下移(不等同是最后一条记录)

rs.bof=true时表时指针已移到最前记录,不能往上移(同样,不等同是第一条记录)

设某数据库共7条记录,当在第N条(N=1,2,,,,7)时,
rs.bof=false,rs.eof=false
但第一条,又要往上移时,rs.bof=true,表示不能往上移
同理可理解rs.eof

if not rs.eof and not rs.bof then 
   语句块
end if
就是:
只要还没到达数据顶部和底部,就执行语句块
 
   
例子::

ASP与数据库-连接、写入、修改、删除、显示代码属性与方法

        PageCount 属性: 决定 Recordset 对象包括多少“页”的数据。         这里的“页”是数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。必须注意也并不是所有的数据提供者都支持此项属性。       PageSize 属性:显示 Recordset 对象每一页显示的记录数。           PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。设定并建立一个页的大小,从而允许使用 AbsolutePage 属性移到其它逻辑页的第一条记录。PageSize 属性能随时被设定。     RecordCount 属性:显示 Recordset 对象记录的总数。     rs.RecordCount:游标中的数据记录总数。     rs.MoveFirst: 指向第一条记录。           rs.Move(6): 移动到第6条记录。     rs.MoveLast: 指向最后一条记录。     rs.MovePrev: 指向上一条记录。     rs.MoveNext: 指向下一条记录。     rs.GetRows: 将数据放入数组中

Recordset对象的Open函数:    Rs.Open 数据表名称或SQL指令,Connection对象,Recordset类型,锁定类型  参数一:若指定成数据表名称,则打开整个数据表,若指定成Select指令,则所建立的Recordset对象是Select指令选取的数据记录的结果。  参数二:传入某一个已打开的数据库的Connection对象。  参数三:是Recordset类型,它含有下表的四种设置值:  Recordset类型的设置值 意义  AdOpenForwardOnly(=0) 只读,且当前数据记录只能向下移动  AdOpenStatic(=3) 只读,当前数据记录可自由移动  AdOpenKeyset(=1) 可读写,当前数据记录可自由移动  AdOpenDynamic(=2) 可读写,当前数据记录可自由移动  AdOpenKeyset和AdOpenDynamic的差别只表现在多人共用数据库时,若以AdOpenKeyset 模式打开数据表,则无法看到其他人新增的数据记录(除非重新启动),如果是以AdOpenDynamic模式打开数据库,则可以看到其他人新增的数据记录。  参数四:是锁定类型,它同样含有四种设置值,见下表:  锁定类型的设置值 意义  adLockReadOnly(=1) 默认值,用来打开只读的数据记录  adLockPessimistic(=2) 悲观锁定  adLockOptimistic(=3) 乐观锁定  adLockBatchOptimistic(=4) 批次乐观锁定

数据库连接-------------------------------- MS Access数据库连接

用DSN连接并且没有用户名和密码:

<% set conn=Server.CreateObject("ADODB.Connection") conn.open "YourDSNName" %>

用DSN连接并且有用户名和密码:

<% set conn=Server.CreateObject("ADODB.Connection") conn.open "YourDSNName","username","password" %>

用实际的数据库绝对路径连接:

<% Set conn=Server.CreateObject("ADODB.Connection") Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; " Strconn=Strconn & "DBQ=e:\yanhang\database.mdb"  conn.Open Strconn %>

用实际的数据库相对路径连接:

<% Set conn=Server.CreateObject("ADODB.Connection") Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; " Strconn=Strconn & "DBQ=" & Server.MapPath("/database/yanhang.mdb") conn.Open Strconn %>

MS SQL Server数据库连接

用DSN连接:

<% set conn=Server.CreateObject("ADODB.Connection") conn.open "DSN=MyDSN;UID=user;PWD=password;DATABASE=databasename" %>

不用DSN连接:

<% Set conn=Server.CreateObject("ADODB.Connection") DSNtemp="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=databasename" conn.open DSNtemp %>

Oracle数据库连接:

<% set conn=server.createobject("adodb.connection") conn.cursorlocation=adUseClient DSNTemp="Provider=MSDAORA.1;Password=xxxxx;User ID=yanhang;Data Source=xxx.world" conn.open DSNtemp %>

数据写入…………………………………………………………………………………… <!--#i nclude file="common/conn.asp"--> <% set rs=server.createobject("adodb.recordset") sql="select * from online" rs.open sql,conn,3,2 rs.addnew rs("name")=request("name") rs("Tel")=request("tel") rs("fax")=request("fax") rs("mail")=request("email") rs("code")=request("zip") rs("content")=request("contents") rs("Address")=request("Address") rs.update rs.close %>

数据修改…………………………………………………………………………………… <% if request("action")="edit" then '判断是否修改

'取得表单传递的数据 member_name=Trim(Request.Form("member_name")) member_pwd=Trim(Request.Form("member_pwd")) question=Trim(Request.Form("question")) answer=Trim(Request.Form("answer")) realname=Trim(Request.Form("realname")) sex=Trim(Request.Form("sex")) zip=Trim(Request.Form("zip")) address=Trim(Request.Form("address")) tel=Trim(Request.Form("tel")) fax=Trim(Request.Form("fax")) mobile=Trim(Request.Form("mobile")) email=Trim(Request.Form("email")) web=Trim(Request.Form("web")) vip=request.form("vip") remark=Trim(Request.Form("remark"))

sql="select * from member where m_id="&m_id set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,3

rs("member_name")=member_name rs("answer")=answer rs("question")=question rs("member_pwd")=member_pwd rs("realname")=realname rs("sex")=sex rs("zip")=zip rs("tel")=tel rs("mobile")=mobile rs("fax")=fax rs("address")=address rs("email")=email rs("web")=web rs("vip")=vip rs("remark")=remark

rs.update rs.close set rs=nothing

call ok("资料修改成功!","edit_member.asp?m_id="&m_id)

end if %>

数据删除--数字字段…………………………………………………………………………………… <% set rs=server.createobject("adodb.recordset") sql="select * from pay where ID =1" rs.open sql,conn,1,3 if not rs.eof and not rs.bof then rs.movefirst do while not rs.eof rs.delete rs.movenext loop end if rs.close %>

数据删除--字符串字段…………………………………………………………………………………… <% set rs=server.createobject("adodb.recordset") sql="select * from pay where namer ='aaa'" rs.open sql,conn,1,3 if not rs.eof and not rs.bof then rs.movefirst do while not rs.eof rs.delete rs.movenext loop end if rs.close %>

数据显示…………………………………………………………………………………… <% Lei="行业资讯" '设置显示信息类别 set rs=server.CreateObject("adodb.Recordset") sql="Select top 20 * from News where Lei <> '"&Lei&"' order by ID desc" rs.open sql,conn,1,1 if rs.eof then '判断数据库内有无信息,防止读取错误 %> 暂无信息! <% else  do while not rc.eof %> <%if len(rs("Title")) > 10 then Response.write left(rs("Title"),10)&"..." else Response.write rs("Title") end if%> <% '循环显示数据 rc.movenext  loop rc.close  set rc=nothing end if%>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值