Witam, mam pewien problem. Otóż mam aplikację, która między innymi dodaje pracowników w firmie do bazy danych. Pracownik ma pola: id, imię, nazwisko, nr_telefonu i dział_id. Chciałbym zrobić tak, by podawać nazwę działu zamiast jego id, ale nie wiem, jak dostać się do wpisywanego wiersza, do nazwy działu, by dodać prawidłowo pracownika. Poniżej kod:
grid.clearAllSettings();
filters.setVisible(false);
String zapytanie = "select p.id, p.imie, p.nazwisko, p.nr_telefonu, d.nazwa from pracownik p, dzial d "
+ "where p.dzial_id=d.id" + " order by " + sort;
try {
grid.createControlPanel(DBTable.READ_INSERT_NAVIGATION);
grid.setSelectSql(zapytanie);
grid.createColumnModelFromQuery();
Column c = grid.getColumn(1);
c.setPreferredWidth(90);
c.setReadOnly(false);
c = grid.getColumn(2);
c.setPreferredWidth(120);
c.setReadOnly(false);
c = grid.getColumn(3);
c.setPreferredWidth(100);
c.setReadOnly(false);
c = grid.getColumn(4);
c.setHeaderValue("DZIAL");
c.setPreferredWidth(100);
c.setReadOnly(false);
//int row = grid.getSelectedRow();
//Object wiersz = grid.getRowObject(row); jak dostać informację o wpisanym dziale
//wiersz.toString();
grid.addInsertSql(
"insert into Pracownik (ID,IMIE,NAZWISKO,NR_TELEFONU, DZIAL_ID) values (?,?,?,?,?) "
+ "where dzial_id = (select dzial_id from dzial where nazwa = '"+row+"')",
"1,2,3,4,5");
grid.refresh();
this.getContentPane().revalidate();
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, e.getMessage(), "",
JOptionPane.OK_OPTION);
}
Próbowałem kombinować jakoś z getSelectedRow, ale to nie działa tak, jakbym tego chciał.