2 mbyan mbyan 于 2014.12.08 14:02 提问

asp 初学者 if语句不执行
exec="select bl,ed from yonghu where users = '"&ur&"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,3,3
set zj=conn.Execute("select sum(je) as num from xinxi where users='"&ur&"'") 
set bgje=conn.execute("select sum(je) as num from xinxi where users='"&ur&"' and yt like '办公%'")
response.Write(not (bgje.bof and bgje.eof))
response.Write(bgje("num"))
if not(bgje.bof and bgje.eof) then
rs("bl")=0
rs("ed")=zj("num")/2
else
rs("bl")=bgje("num")/zj("num")*100
rs("ed")=zj("num")/2-bgje("num")
end if
rs.update
rs.close

其中not(bgje.bof and bgje.eof)输出的值始终是ture没有false的时候,这是怎么回事?

2个回答

showbo
showbo   Ds   Rxr 2014.12.08 14:17
已采纳

sum,count这种sql语句总会有记录返回的,不需要判断游标是否在开始或者结束位置,你要判断rs这个游标,要不没有记录就会出错了

 exec="select bl,ed from yonghu where users = '"&ur&"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,3,3
set zj=conn.Execute("select sum(je) as num from xinxi where users='"&ur&"'") 
set bgje=conn.execute("select sum(je) as num from xinxi where users='"&ur&"' and yt like '办公%'")
if rs.eof then'''''''''''''
  if not(bgje.bof or bgje.eof) then
    rs("bl")=0
    rs("ed")=zj("num")/2
  else
    rs("bl")=bgje("num")/zj("num")*100
    rs("ed")=zj("num")/2-bgje("num")
  end if
  rs.update
else
  response.Write "记录不存在"
end if
rs.close
feiyun0112
feiyun0112   Rxr 2014.12.08 14:12

只需要其中一个为ture
not(bgje.bof or bgje.eof)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!