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
的“部门名称”上选择了“部门名称”,它将选择该部门上列出的医生的名称,但是显示错误消息结果集已关闭,并且没有填充“医生名称”组合框。是否有错误或无法执行?
答案 0 :(得分:1)
pst.setString
之前调用pst.executeQuery
,否则您尚未将值绑定到查询rs.next
(并检查它的返回值),否则将“在第一个结果之前”。e.printStackTrace()
,因为它将为您提供有关该异常的其他信息(您确实应该记录该异常,但是让我们从此处开始)try-with-resources
statement来更好地管理您的资源,因为您冒着使其中某些资源处于开放状态的风险我建议您花一些时间来研究JDBC Basics Trail,因为这些并不是程序或API问题,而是对API用法的误解