I am finding it difficult to update the JTable when I enter a person's name in search button. The program compiles correctly without any errors, but in SearchActionPerformed event when the search button is pressed an empty table comes up. Where without search, the table is full of values from database. In the search criteria, I have typed a surname exactly as one from database but no returns.

public class MainMenu extends javax.swing.JFrame {

        Academic ac = new Academic();
        Connection conn = JavaConnect.ConnectDB();
        PreparedStatement pst = null;
        String sql;
        ResultSet rs = null;
        ImageIcon format = null;
        public byte[] imagedata = null;

        /**
         * Creates new form MainMenu
         */
        public MainMenu() {
            initComponents();
        }

        public void Update_table(String sql) {
            try {
                // String sqlStatement =
                // "SELECT Title, Forename, Surname, Role FROM AcademicInfo ";
                pst = conn.prepareStatement(sql);
                rs = pst.executeQuery();
                table_academic.setModel(DbUtils.resultSetToTableModel(rs));
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }

            finally {
                try {
                    rs.close();
                    pst.close();
                } catch (Exception e) {
                }

            }

        }// end method

        private void table_academicMouseClicked(java.awt.event.MouseEvent evt) {
            try {
                int row = table_academic.getSelectedRow();
                String table_click0 = (table_academic.getModel().getValueAt(row, 1)
                        .toString());
                String table_click1 = (table_academic.getModel().getValueAt(row, 2)
                        .toString());
                String sqlSt = "SELECT * FROM AcademicInfo WHERE Forename='"
                        + table_click0 + "' AND Surname='" + table_click1 + "'";
                Connection conn2 = JavaConnect.ConnectDB();
                pst = conn2.prepareStatement(sqlSt);
                rs = pst.executeQuery();

                if (rs.next()) {
                    label_name.setText("" + rs.getString(2) + " " + rs.getString(3)
                            + " " + rs.getString(4));
                    label_role.setText("" + rs.getString(5));
                    label_room.setText("Room:   " + rs.getString(6));
                    jLabel14.setText("Page:   " + rs.getString(7));
                    label_hours.setText("Hours:   " + rs.getString(8));
                    label_phone.setText("Phone:   " + rs.getString(9));
                    label_mobile.setText("Mobile:   " + rs.getString(10));
                    label_email.setText("Email:   " + rs.getString(11));
                    imagedata = (rs.getBytes(12));
                    format = new ImageIcon(imagedata);
                    label_image.setIcon(format);

                }
            }

            catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            } finally {
                try {
                    rs.close();
                    pst.close();
                } catch (Exception e) {
                }
            }
        }

        private void SearchActionPerformed(java.awt.event.ActionEvent evt) {
            try {
                String sql = "SELECT Title, Forename, Surname, Role FROM AcademicInfo WHERE Surname=?";
                PreparedStatement pst1 = conn.prepareStatement(sql);
                pst1.setString(1, search_txt.getText());
                ResultSet rs2 = pst1.executeQuery();
                if (rs2.next()) {

                    JOptionPane.showMessageDialog(null, "Found Academic");
                    Update_table(sql);
                } else {
                    JOptionPane.showMessageDialog(null, "No Results Found");
                }
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e);
            }
        }
    }
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.