CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

判断数据库记录有无的问题

楼主jfu(谁动了我的奶酪)2005-02-25 01:16:12 在 Web 开发 / ASP 提问

以下代码,在判断数据库中无记录时候,才往数据库里添加新记录,但是实际情况却是,数据库中无记录时候,它也提示说有记录,怎么回事?请帮忙!谢谢!  
  <%    
  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

相关问题

  • 求教:判断数据库有无此条记录,急
  • 关于js判断数据库有无记录?的方法
  • 判断数据库中的记录已到20天?
  • 判断数据库中没记录的语句?
  • 怎么判断数据库里没有记录?
  • 如何判断此记录是否存在于数据库中
  • 如何判断数据库记录是否返回空值?
  • 如何判断ACCESS数据库表记录为空
  • 简单的判断显示问题,如果数据库中表中无记录,则显示<无>,有记录怎则显示出记录
  • 数据库无法插入记录记录

关键词

  • 数据库
  • jihuaid
  • xjihuaid
  • rs
  • xdoer
  • doer
  • 记录
  • endend
  • eof
  • xtodo

得分解答快速导航

  • 帖主:jfu
  • boythl
  • yl1209
  • shoucao
  • jinwenming

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo