Я новичок в Java, используя NetBeans, и я пытался создать нечто похожее на систему регистрации преподавателей. Я использую SQL Server 2005 для создания БД. Во время реализации я пытался создать функцию, чтобы ученики могли регистрировать своих подданных, поэтому функция в основном ищет предметы, которые студент закончил свои предпосылки. Поэтому я написал следующий код:SQLException: результирующий набор закрыт
package GUIs;
import java.sql.*;
import javax.swing.*;
public class AddSubToStd extends javax.swing.JFrame {
final void FillList1(){
try{
String url = "jdbc:sqlserver://localhost:1433;databaseName=BIS";
String username = "sa";
String password = "*****";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
DefaultListModel DLM = new DefaultListModel();
ResultSet res = stmt.executeQuery("SELECT * FROM Students");
while(res.next()){
DLM.addElement(res.getString("ID"));
}
List1.setModel(DLM);
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e.toString());
}
}
final void FillList2(){
try{
String url = "jdbc:sqlserver://localhost:1433;databaseName=BIS";
String username = "sa";
String password = "*****";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
DefaultListModel DLM = new DefaultListModel();
String Query = "SELECT * FROM FinishedCourses WHERE ID = '"+List1.getSelectedValue()+"'";
ResultSet res = stmt.executeQuery(Query);
ResultSet res1;
String S_Code;
String Query1;
while(res.next()){
S_Code = res.getString("S_Code");
Query1 = "SELECT * From Subjects WHERE Prerequisite = '"+S_Code+"'";
res1 = stmt.executeQuery(Query1);
while(res1.next()){
DLM.addElement(res.getString("S_Code"));
}
}
conn.close();
stmt.close();
List2.setModel(DLM);
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e.toString());
}
}
public AddSubToStd() {
initComponents();
FillList1();
}
но я получаю SQLException
что говорит набор результатов закрыт, когда я пытаюсь вызвать FillList2()
private void UpdateAllowedActionPerformed(java.awt.event.ActionEvent evt) {
try{
String url = "jdbc:sqlserver://localhost:1433;databaseName=BIS";
String username = "sa";
String password = "*****";
Connection conn = DriverManager.getConnection(url,username,password);
FillList2();
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e.toString());
}
}
кто-то пожалуйста, помогите.
Добавьте 'e.printStackTrace()' к вашему 'catch' и добавьте трассировку стека к вашему вопросу, пожалуйста. – RealSkeptic