日期:2014-05-18  浏览次数:20732 次

多选择查询问题,急盼朋友解答!
最近做毕业设计,以前做单个查询时没有遇到过,在做多选择查询时遇到了问题……

目的是在下拉菜单中选择“学号”or“姓名”or“性别”,关键字文本框中用户输入信


例,选择“学号”,文本框中输入“12345”,就能查询到学号是12345的纪录信息

当我选择"范围——学号”+“关键字——*******”就可以正确显示出查询的纪录,但如果选择“范围—

—姓名”+“关键字——某某”,就什么也查不出来……选择“范围——性别”+“关键字——男”也如此

,不知何故……

以下是查询代码:
……
String s_range = request.getParameter("range"); //range是下拉菜单的值
String s_key = request.getParameter("key"); //key是文本框的值
String query="select * from 党员信息 where " + s_range + " = " + s_key;
rs = sql.executeQuery(query);
……问题已困扰几天,急盼解答!
如果您有更好的实现方法(不必做模糊查询),请跟我说!万分感谢!

------解决方案--------------------
String sql = "select * from 党员信息 where " + s_range + "= ?";
PreparedStatement prep = new Conn().getConnection().prepareStatement(sql);
prep.setString(1,s_key);
ResultSet rs = prep.executeQuert();
试下~
------解决方案--------------------
String query="select * from 党员信息 where " + s_range + " = '" + s_key + "'";
看看

------解决方案--------------------
楼主好像忘了:单引号“''”

------解决方案--------------------
String query="select * from 党员信息 where " + s_range + " = '" + s_key + "'"; 
这是正解,key 前后少了'号,字符串还没关系,要是汉字没有用'号的话在数据库中查询就会报找不到列的错误