Заполните JComboBox при выборе названия отдела - PullRequest
0 голосов
/ 24 сентября 2018
try{
    String sql = "Select First_Name,MI,Last_Name from User_Table\n" +
                 "inner join Department_Table on User_Table.Department_ID=Department_Table.Department_ID\n" +
                 "where Department_Name = ? ";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
    pst.setString(1, (String)DoctorDep.getSelectedItem());
    String add1 = rs.getString("First_Name");
    String add2 = rs.getString("MI");
    String add3 = rs.getString("Last_Name");
    DoctorNames.addItem(add1+" "+add2+" "+add3);
}catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}finally {
   try {
       rs.close();
       pst.close();
   }catch(Exception e){
   }
}

Я выбираю Название отделения в JComboBox Название отделения, и оно выберет имя доктора, указанного в этом отделении, но оно показало, что набор результатов сообщения об ошибке закрыт, и он не заполняет поле со списком Имя доктора.Есть ошибка или это невозможно сделать?

1 Ответ

0 голосов
/ 24 сентября 2018
  • Вы должны вызвать pst.setString ДО pst.executeQuery, иначе вы не привязали бы значения к запросу
  • Вы должны вызвать rs.next (и проверить его возвращаемое значение) ДО попыткиПолучите доступ к значениям результата, в противном случае вы будете «до первого» результата.
  • Вы также должны использовать e.printStackTrace(), так как он предоставит вам дополнительную информацию об исключении (вам действительно следует регистрировать его)., но давайте начнем с этого)
  • Вы должны использовать оператор try-with-resources , чтобы лучше управлять своими ресурсами, поскольку вы рискуете оставить некоторые из них открытыми

Я бы посоветовал вам потратить время на ознакомление с Основами JDBC , поскольку это не столько проблема с программой или API, сколько неправильное понимание того, как работать с API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...