【发布时间】:2014-08-05 10:31:08
【问题描述】:
我正在实现一种搜索方法,我想在基于 id 和 name 的 Jtable(其中包含 2 列 id 和 name)中搜索数据。到目前为止,我只能使用 id 或 name 之一进行搜索,但不能同时使用它们。我尝试了一个解决方案,但它不起作用,它只搜索最后一个(id 或 name)。例如,如果我从 try and catch by name 然后 id 开始,它只会与 id 搜索一起使用。如果我以 id 和名称开头,它只会按名称搜索。你能帮帮我吗?
代码:
`private void textField1KeyReleased(java.awt.event.KeyEvent evt) {
PreparedStatement pst=null;
ResultSet rs=null;
if (textField1.getText().length() > 0){
try{
String sql = "select * from compte_utilisateur where nom=?";
pst=maConnexion.ObtenirConnexion().prepareStatement(sql);
pst.setString(1, textField1.getText());
rs=pst.executeQuery();
TableUtilisateur.setModel(DbUtils.resultSetToTableModel(rs));}
**catch(Exception e){JOptionPane.showMessageDialog(null, e);}
try{
String sql = "select * from compte_utilisateur where id_utilisateur=?";
pst=maConnexion.ObtenirConnexion().prepareStatement(sql);
pst.setString(1, textField1.getText());
rs=pst.executeQuery();
TableUtilisateur.setModel(DbUtils.resultSetToTableModel(rs));}
catch(Exception e){JOptionPane.showMessageDialog(null, e);}
}
else update_table();
}`**
【问题讨论】:
-
要根据文本字段值填充表格,请参阅this related question and answer。
-
它不起作用,请给我其他解决方案
-
"It's not working" 是完全没用的陈述,例如“天空是蓝色的”或“太阳很亮”。你到底是什么意思“不工作”?实际上,您尝试了什么但没有奏效?你甚至读过那篇文章吗?您在构建 SQL 查询时遇到问题吗?你在哪里卡住了?
-
我在那一行出错了:private Map
parameters = new HashMap(); -
现在可以了,我做到了:
select * from compte_utilisateur where nom=? or id_utilisateur=?并添加了pst.setString(1, textField1.getText()); pst.setString(2, textField1.getText()); pst.setString(3, textField1.getText());非常感谢您的帮助