我是使用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