如何更新表,然后仍然能够将其数据带到JTextField?

时间:2013-04-24 16:52:00

标签: java mysql swing jdbc jtable

我有一个JFrame,我有一个JTable,它是从mysl数据库填充的。每当我点击一行时,来自该特定行的数据就会被发送到JTextField。

代码是这样的:

private void table3MouseClicked(java.awt.event.MouseEvent evt) {
  try {
    int selectedRow = table3.getSelectedRow();
    String Mouse_Click = table3.getValueAt(selectedRow, 0).toString();
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/LogParser", "Hory Hene", "umobitelco");
    String sql = "Select * from TraceCodes where Trace_ID='" + Mouse_Click + "'";
    PreparedStatement ps = conn.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();
    if (rs.next()) {
      String AddTrace = rs.getString("Trace_Code");
      TraceCTextF.setText(AddTrace);
    }
  } catch (Exception e) {
    JOptionPane.showMessageDialog(null, e);
  }
}

然后我想通过单击“更新”按钮从TextField更新该数据。我的程序也这样做:

private void EventUpdateActionPerformed(java.awt.event.ActionEvent evt) {
  // TODO add your handling code here:
  try {
    int selectedRow = table.getSelectedRow();
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/LogParser", "Hory Hene", "umobitelco");
    String sqlStatement = " Update EventNames set Event_Name = ? where Event_ID = ? ";
    String EventUpdate = EventTextF.getText();
    PreparedStatement updateQuery = conn.prepareStatement(sqlStatement);
    updateQuery.setString(1, EventUpdate);
    updateQuery.setInt(2, selectedRow + 1);
    updateQuery.executeUpdate();
    EventTextF.setText("");
  } catch (Exception e) {
    JOptionPane.showMessageDialog(null, e);
  }
}

我的问题是,在我进行更新之后,如果我点击JTable中的一列,我的JTextField就不会再填充数据了。

因此,如果我想从表中更新第二个字段,我必须关闭框架并重新开始..有人可以帮助我吗?

提前致谢

0 个答案:

没有答案