CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

带参数的查询,为什么检索不到数据?

楼主rcrain(东方细雨)2006-05-03 11:28:09 在 Java / Web 开发 提问

Connection   conn=mail3.getConnection();  
  sql="select   *   from   addr_port   where   floor=?   and   direct=?   and   room=?";  
  sql="select   *   from   addr_port";  
        PreparedStatement   ps=conn.prepareStatement(sql);  
        ps.setString(1,"学生14楼");  
        ps.setString(2,"东");  
        ps.setString(3,"103");  
        rs=ps.executeQuery();  
        if(rs.next())    
        {  
                      String   floor2=rs.getString("floor2");System.out.println(floor2);  
                      String   switchs=rs.getString("switch");System.out.println(switchs);  
                      String   port=rs.getString("port");System.out.println(port);  
        }  
  这样检索不到数据,但我在MySQl的客户端输入:select   *   from   addr_portand   where     direct='东'   and   floor='学生14楼'   and   room='103'  
  可以检索到数据,为什么?请大家指点一下,谢谢! 问题点数:20、回复次数:7Top

1 楼rcrain(东方细雨)回复于 2006-05-03 11:44:35 得分 0

Connection   conn=mail3.getConnection();  
  sql="select   *   from   addr_port";  
  sql="select   *   from   addr_port";  
        PreparedStatement   ps=conn.prepareStatement(sql);  
        ps.setString(1,"学生14楼");  
        ps.setString(2,"东");  
        ps.setString(3,"103");  
        rs=ps.executeQuery();  
        if(rs.next())    
        {  
                      String   floor2=rs.getString("floor2");System.out.println(floor2);  
                      String   switchs=rs.getString("switch");System.out.println(switchs);  
                      String   port=rs.getString("port");System.out.println(port);  
        }  
  但如果把参数去掉,就可以查询到结果了。Top

2 楼fosjos(无聊的菜鸟程序员)回复于 2006-05-03 11:50:31 得分 5

sql="select   *   from   addr_port   where   floor=?   and   direct=?   and   room=?";  
  sql="select   *   from   addr_port";////这句话是做什么用的,删了试试  
  Top

3 楼rcrain(东方细雨)回复于 2006-05-03 12:01:54 得分 0

不行,这是我当时做测试用的,sql="select   *   from   addr_port";在这种不带参数的情况下,可以检索到数据Top

4 楼fosjos(无聊的菜鸟程序员)回复于 2006-05-03 12:27:27 得分 5

我指的是:  
  sql="select   *   from   addr_port   where   floor=?   and   direct=?   and   room=?";  
  sql="select   *   from   addr_port";////这个和下面的ps.setString(1,...)不矛盾?  
        PreparedStatement   ps=conn.prepareStatement(sql);  
        ps.setString(1,"学生14楼");  
        ps.setString(2,"东");  
        ps.setString(3,"103");  
  Top

5 楼yun19()回复于 2006-05-03 13:03:34 得分 5

好像参数有问题吧  
  在sql里面字符串是用'单引号引起来的  
  象你这样直接传估计是不行的了  
  把单引号加到字串里试试Top

6 楼heliang69(紫星)回复于 2006-05-03 13:15:58 得分 5

你试一试,不用PreparedStatement,直接用Statement把SQL语句写好,试一下Top

7 楼rcrain(东方细雨)回复于 2006-05-03 14:15:40 得分 0

Statement的也不行Top

相关问题

关键词

得分解答快速导航

  • 帖主:rcrain
  • fosjos
  • fosjos
  • yun19
  • heliang69

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

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