Witam serdecznie,
mam problem z UPDATE modyfikującego dane wyświetlone z Bazy danych w tabeli "jTable1". Gdy użytkownik naciśnie na jakiś rekord w tabeli , zostaną one wczytane do "jTextField1" .... "jTextField7". Obsługa myszy przedstawia się:
private void jTable1MousePressed(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int rec = jTable1.getSelectedRow();
jTextField1.setText(jTable1.getValueAt(rec, 0).toString());
jTextField2.setText(jTable1.getValueAt(rec, 1).toString());
//jComboBox1 ??
jTextField4.setText(jTable1.getValueAt(rec, 5).toString());
jTextField5.setText(jTable1.getValueAt(rec, 6).toString());
jTextField6.setText(jTable1.getValueAt(rec, 7).toString());
jTextField7.setText(jTable1.getValueAt(rec, 8).toString());
}
Jednak nie wiem jak wczytać tu "jComboBox1". Jaką funkcje pobrać ?
Jak już się wczytają pola, nie wiem również jak wykonać obsługę button "jButton6" modyfikujący rekordy . Zaczęłam tak :
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int id = Integer.parseInt(jTextField1.getText());
int employee_id = Integer.parseInt(jTextField2.getText());
String department_name = String.valueOf(jComboBox1.getSelectedItem());
java.sql.Timestamp v_begin = java.sql.Timestamp.valueOf(jTextField4.getText());
java.sql.Timestamp v_end = java.sql.Timestamp.valueOf(jTextField5.getText());
//połączenie z bazą danych, tak samo jak w standardowych
String sql = "UPDATE time_work SET employee_id=?, department_name=?, v_begin=?, v_end=? WHERE id =?";
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url, user, pass);
java.sql.Timestamp t_start = new java.sql.Timestamp(new java.util.Date().getTime());
java.sql.Timestamp t_stop = new java.sql.Timestamp(new java.util.Date().getTime());
Statement statement = con.createStatement();
PreparedStatement cs = con.prepareStatement(sql);
cs.setInt(1, id);
cs.setInt(2, employee_id);
cs.setString(3, department_name);
cs.setTimestamp(4, v_begin);
cs.setTimestamp(5, v_end);
cs.setTimestamp(6, t_start);
cs.setTimestamp(7, t_stop);
cs.executeUpdate();
cs.close();
con.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
Chciałabym prosić uprzejmie o wskazówkę jak zmodyfikować pobrane dane z tych pól "jTextField1", "jTextField2", "jComboBox1" .... "jTextField5", Wcześniej zostały wczytane z tabeli "jTable1". Powyższe rozwiązanie jest niestety błędne , nie działa :(
Tą modyfikację można na wiele sposobów rozwiązać, np przez wprowadzenie jakiegoś zmienionego rekordu do tabeli "jTable1". W tej tabeli wyświetlają się rekordy:
id employes_id first_name last_name department_name v_begin v_end t_start t_stop
1 1 imie1 nazwisko1 IT 2010-10-09 2010-11-09 2010-10-09 2010-11-09
2 3 imie2 nazwisko2 Serwis 2010-10-01 2011-11-09 2010-10-01 2011-11-09
Chciałabym uprzejmie prosić o wskazówkę, jak rozwiązać mój problem z przyciskiem UPDATE?