带参数的查询,为什么检索不到数据?
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




