我是使用NetBeans的Java初学者,我试图创建类似于教员注册系统的东西。我使用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();
}
,但我得到的是说,当我尝试调用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());
}
}
有人请帮助的结果集被关闭SQLException
。
将'e.printStackTrace()'添加到您的'catch'并将堆栈跟踪添加到您的问题中。 – RealSkeptic