判断数据库记录有无的问题
以下代码,在判断数据库中无记录时候,才往数据库里添加新记录,但是实际情况却是,数据库中无记录时候,它也提示说有记录,怎么回事?请帮忙!谢谢!
<%
xjihuaid=request("x0id")
xdoer=request("x0doer")
xtodo=request("x0todo")
xordername=request("x0ordername")
<%
response.end
end if
response.write""&xjihuaid&"--"&xdoer&"----"&xtodo&"<br>"
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from jihua2 where jihuaid="&xjihuaid&" and doer='"&xdoer&"'" //这句
rs.open sql,conn,3,3
if rs.eof then
response.write"记录已存在!"
response.end
end if
rs.close
sql="select * from jihua2 "
rs.open sql,conn,3,3
rs.addnew
rs("jihuaid")=xjihuaid
rs("doer")=xdoer
rs("todo")=xtodo
rs("ordername")=xordername
rs("ordertime")=now()
rs("zhuangtai")="no"
RS.Update
Rs.Close
response.write"操作成动"
%>
问题点数:50、回复次数:15Top
1 楼boythl(沙漠孤狐【工作,生活,编程】)回复于 2005-02-25 01:41:33 得分 10
if rs.eof then //这句应该修改成 if not rs.eof and not rs.bof then
response.write"记录已存在!"
response.end
end if
rs.close
当记录集为空时rs.eof返回true或rs.bof返回true.
另,jihuaid字段是数字型的吧,建议你在where jihuaid="&xjihuaid&" 这句前将xijihuaid转换成数字型变量,不然容易中SQL注入。Top
2 楼hubingbin(胡兵斌)回复于 2005-02-25 03:53:56 得分 0
呵呵 楼上说的对
if rs.eof then //这句应该修改成 if not rs.eof and not rs.bof thenTop
3 楼power88888(安安)回复于 2005-02-25 07:58:01 得分 0
if not rs.eof then //是找到了满足条件的记录
if rs.eof then //是没有找到满足条件的记录Top
4 楼gu1dai(异域苍穹.百年飞行)回复于 2005-02-25 08:22:46 得分 0
if rs.eof then
改为
if not rs.eof thenTop
5 楼jfu(谁动了我的奶酪)回复于 2005-02-25 12:32:47 得分 0
谢谢各位,现在我改成以下代码,但是还是那样:数据库中无记录时候,它也提示说有记录,
我把查询的那句改为:sql="select * from jihua2 where jihuaid="&xjihuaid&" ",效果一样,好像这个条件选择语句不起作用一样,怎么回事呢?请大家帮帮我!谢谢!
<%
response.end
end if
response.write""&xjihuaid&"--"&xdoer&"----"&xtodo&"<br>"
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from jihua2 where jihuaid="&xjihuaid&" and doer='"&xdoer&"'"
rs.open sql,conn,3,3
if not rs.eof and not rs.bof then
response.write"记录已经存在!"
response.end
end if
rs.close
sql="select * from jihua2 "
rs.open sql,conn,3,3
rs.addnew
rs("jihuaid")=xjihuaid
rs("doer")=xdoer
rs("todo")=xtodo
rs("ordername")=xordername
rs("ordertime")=now()
rs("zhuangtai")="no"
RS.Update
Rs.Close
response.write"操作成动"
%>
Top
6 楼BeShrek(今晚打老虎)回复于 2005-02-25 13:06:40 得分 0
设个断点,把sql中的值放到查询分析器里看看结果再说Top
7 楼yl1209(STUDY)回复于 2005-02-25 13:15:07 得分 10
sql="select count(*) as reccount from jihua2 where jihuaid="&xjihuaid&" and doer='"&xdoer&"'"
rs.open sql,conn,3,3
if rs("reccount")>0 then
response.write "有记录"
else
response.write "无记录"
end ifTop
8 楼shoucao(瘦草)回复于 2005-02-25 13:18:35 得分 20
<%
response.end
end if
response.write""&xjihuaid&"--"&xdoer&"----"&xtodo&"<br>"
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from jihua2 where jihuaid="&xjihuaid&" and doer='"&xdoer&"'"
rs.open sql,conn,3,3
if not (rs.eof and rs.bof) then
response.write"记录已经存在!"
response.end
end if
rs.close
sql="select * from jihua2 "
rs.open sql,conn,3,3
rs.addnew
rs("jihuaid")=xjihuaid
rs("doer")=xdoer
rs("todo")=xtodo
rs("ordername")=xordername
rs("ordertime")=now()
rs("zhuangtai")="no"
RS.Update
Rs.Close
response.write"操作成动"
%>
Top
9 楼jfu(谁动了我的奶酪)回复于 2005-02-25 17:51:57 得分 0
yl1209(STUDY) 和 shoucao(瘦草) 的方法试过了,也是不行呀!真奇怪,这个应该不是个难问题呀!Top
10 楼jfu(谁动了我的奶酪)回复于 2005-02-28 13:34:12 得分 0
哪位朋友帮帮我找找原因呀!谢谢!Top
11 楼icefire988(冰火)回复于 2005-02-28 14:12:11 得分 0
BeShrek(做爱做的事)说得对哦!Top
12 楼jinwenming(狼)回复于 2005-02-28 14:41:07 得分 10
<%
response.end
end if
response.write""&xjihuaid&"--"&xdoer&"----"&xtodo&"<br>"
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from jihua2 where jihuaid="&xjihuaid&" and doer='"&xdoer&"'"
rs.open sql,conn,3,3
if not rs.eof and not rs.bof then
response.write"记录已经存在!"
response.end
else
rs.close
sql="select * from jihua2 "
rs.open sql,conn,3,3
rs.addnew
rs("jihuaid")=xjihuaid
rs("doer")=xdoer
rs("todo")=xtodo
rs("ordername")=xordername
rs("ordertime")=now()
rs("zhuangtai")="no"
RS.Update
Rs.Close
response.write"操作成动"
end if
%>
Top
13 楼jfu(谁动了我的奶酪)回复于 2005-02-28 17:47:30 得分 0
我把查询条件改为:sql="select * from jihua2 where jihuaid="&xjihuaid&" "
还是不行,还是显示有记录,但数据库里没有符合条件的记录,我的数据库是ACCESSTop
14 楼bluemoon0001(小天--追梦浪子)回复于 2005-03-08 21:49:00 得分 0
<%
response.end
end if
response.write""&xjihuaid&"--"&xdoer&"----"&xtodo&"<br>"
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from jihua2 where jihuaid="&xjihuaid&" and doer='"&xdoer&"'" //这句
rs.open sql,conn,3,3
if rs.eof then
response.write"记录已存在!"
response.end
end if
你看看你的判断条件,明显是错的,应改为:
if not rs.eof then '是not rs.eof 不是rs.eof
response.write"记录已存在!"
response.end
end ifTop
15 楼bluemoon0001(小天--追梦浪子)回复于 2005-03-08 21:49:57 得分 0
<%
response.end
end if
response.write""&xjihuaid&"--"&xdoer&"----"&xtodo&"<br>"
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from jihua2 where jihuaid="&xjihuaid&" and doer='"&xdoer&"'" //这句
rs.open sql,conn,3,3
if rs.eof then
response.write"记录已存在!"
response.end
end if
你看看你的判断条件,明显是错的,应改为:
if not rs.eof then '是not rs.eof 不是rs.eof
response.write"记录已存在!"
response.end
end ifTop




