日期:2014-05-17  浏览次数:20869 次

while not 何if not 有什么区别阿

<%
set   rs1=Server.CreateObject( "ADODB.Recordset ")
sql= "Select   *   from   baogao   "
rs1.open   sql,conn,1,1
while   not   rs1.eof  
response.write   rs1( "bgname ")
wend
%>     出错
Response   对象   错误   'ASP   0251   :   80004005 '  

超过响应缓冲区限制  

/web/bao.asp,行   0  

此   ASP   页的执行造成响应缓冲区超过其配置限制。  

而if   not.rs1.eof   只打印了一条记录。为啥呢

------解决方案--------------------
晕,只要有记录,rs1.eof恒为true,所以一直循环,直到超时或崩溃。

response.write 后,要把控制指针向下移动
rs1.movenext
------解决方案--------------------
<%
set rs1=Server.CreateObject( "ADODB.Recordset ")
sql= "Select * from baogao "
rs1.open sql,conn,1,1
do while not rs1.eof
response.write rs1( "bgname ")
rs1.movenext
loop
%>
------解决方案--------------------
都是一样的,只不过执行顺序不一样.

do-while 和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。