用参数查询数据库的简单问题:当参数为字符串型时,sql语句应怎么写呢?

xsm7702 2004-03-20 04:08:08
例,我在sql2000中建有表login,其中有两个字段user,password,都是字符串类型,我想查询指定user的数据,sql语句为:"select * from login where user like '"+textField.getText()+"'";
结果,查不到记录。大伙帮忙看看,应该怎么写啊?若user为int型,则sql语句写为如下即可查到:"select * from login where user like"+Integer.parseInt(textField.getText());
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsm7702 2004-03-21
  • 打赏
  • 举报
回复
谢谢老兄,不过冷水兄的语句好像写错了,应该为:"select * from login where user like '%"+user+"%'";
xsm7702 2004-03-21
  • 打赏
  • 举报
回复
还是不行啊,我现在把代码贴在下面:
String query="select password from login where user like "+"'%"+sql.getText()+"%'";
JOptionPane.showMessageDialog(null,query);
String url="jdbc:odbc:123";
Connection con=null;
PreparedStatement statement=null;
ResultSet result=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url, "sa", "0775");
statement=con.prepareStatement(query,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// statement.setString(1,sql.getText());
result=statement.executeQuery();
if(result.next()) //如果有记录的话
{ sql.setText(result.getString("password"));
JOptionPane.showMessageDialog(null,"已经查找到记录,请查收!");
return;
}
else
{ JOptionPane.showMessageDialog(null,"对不起,没有找到满足条件的记录!");
sql.setText("");
return;
}
}catch(Exception ex){ex.printStackTrace();}
}
比如输入"七小对",执行总是弹出对话框说没有找到满足条件的记录,麻烦再帮忙看看啊.
dreamnear 2004-03-21
  • 打赏
  • 举报
回复
楼上所说的对,但还要看看textField.getText()是不是被加上了空格了…
donghx1234 2004-03-20
  • 打赏
  • 举报
回复
"select * from login where user like "'%" + user + "%'";

这样就可以了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧