【问题标题】:Search DATA in Jtable在 Jtable 中搜索 DATA
【发布时间】: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()); 非常感谢您的帮助

标签: java swing search jtable


【解决方案1】:

只使用一个 SQL 调用从字段中传递相同的值两次

select * from compte_utilisateur where nom=? or id_utilisateur=?

【讨论】:

  • 我已经这样做了,但是我有这个错误:java.sql.SQLException: No value specified for parameter 2
  • 它现在可以工作了,我做到了:select * from compte_utilisateur where nom=? or id_utilisateur=? 我添加了pst.setString(1, textField1.getText()); pst.setString(2, textField1.getText()); pst.setString(3, textField1.getText()); 谢谢你的帮助
【解决方案2】:

你应该在你的项目中添加这个 rs2xml.jar 的 jar/文件夹

String sql="Select * From Inventarizimi where Regjistrimi=?"; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con= (Connection) DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","Inventarizimi"); PreparedStatement preStatement = con.prepareStatement(sql); preStatement.setString(1, txtRegjistrimi.getText()); ResultSet 结果 = preStatement.executeQuery(); table.setModel(DbUtils.resultSetToTableModel(result));

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多