2016-03-18 3 views
0
try { 
      DataBase DB = new DataBase(); 
      Connection con = DB.Connect(); 
      String sql; 
      sql = "select Id,Name,FatherName, City, Address, Department,RStatus, DatePlacement\n" 
        + "from ECL where " 
        + "id like ? and " 
        + "name like ? and FatherName like ? and " 
        + "City like ? and Address like ?"; 
      PreparedStatement pst = con.prepareStatement(sql); 
      pst.setString(1, "%" + SearchId.getText() + "%"); 
      pst.setString(2, "%" + SearchName.getText() + "%"); 
      pst.setString(3, "%" + SearchFatherName.getText() + "%"); 
      pst.setString(4, "%" + SearchCity.getText() + "%"); 
      pst.setString(5, "%" + SearchAddress.getText() + "%"); 
      ResultSet rs = pst.executeQuery(); 
      ResultSetMetaData rsmd = rs.getMetaData(); 
      int MetaColum = rsmd.getColumnCount(); //adding colums in Jtable 
      Vector col = new Vector(); 
      for (int i = 1; i <= MetaColum; i++) { 
       col.addElement(rsmd.getColumnName(i)); 
      } 
      ReTable.setColumnIdentifiers(col); 
      while (rs.next()) { 
       Vector rows = new Vector(); // to add rows in Jtable 
       for (int j = 1; j <= MetaColum; j++) { 
       rows.addElement(rs.getString(j)); 
       } 
       ReTable.addRow(rows); 
       ResultTable.setModel(ReTable); 
      } 
     } catch (Exception ex) { 
      System.out.println(ex); 
     }  
     ReTable.fireTableDataChanged(); // Method to refresh the Jtable 
    } 

как обновить jtable с новыми данными. он загружает новые данные, но также содержит старые данные каждый раз, когда я ищу новое имя, он дает правильный результат, но предыдущие данные поиска также остаются в jtable. мой вопрос в том, как обновить jtable каждый раз, когда я делаю новый поиск. Заранее спасибо.Как обновить JTable каждый раз i Нажмите кнопку поиска

+0

ReTable.fireTableDataChanged(); не работает jtable.repaint(); также не работал. и я новичок в программировании. –

+0

ResultTable.setModel (ReTable); должен быть вместо ReTable.fireTableDataChanged(); – mKorbel

+0

rest (например, ReTable.setColumnIdentifiers (col);) зависит от вашего XxxTableModel, – mKorbel

ответ

0

Вы не удаляете предыдущие строки, вставленные в вашу модель. ReTable. В каждом вызове вы добавляете все больше и больше строк в этой строке:

  ReTable.addRow(rows); 

Удалить все строки из модели перед запуском запроса или создать новую модель свежей, без строк для каждого запроса.

Смежные вопросы