执行deleteRow()之后结果集被关闭?

Quester-King 2012-06-06 02:56:57

public void actionPerformed(ActionEvent ae) {
ResultSet rs = StudentInformation.getResultSet();
int selectedRow = InformationTable.getSelectedRowIndex();

if (selectedRow == -1) {
JOptionPane.showMessageDialog(
OperationPanel.this.getParent(), "错误操作:对无效列的删除!",
"删除失败", JOptionPane.OK_OPTION);
return;
}

try {
rs.absolute(selectedRow + 1);
rs.deleteRow();
JOptionPane.showMessageDialog(OperationPanel.this.getParent(),
"删除成功!", "删除成功", JOptionPane.WARNING_MESSAGE);
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(OperationPanel.this.getParent(),
"有个未知错误!请联系写这个程序的天才!", "删除失败", JOptionPane.OK_OPTION);
}
}


这是为我的按钮添加的监听器。当我第一次选中JTable中的那一行时,点这个按钮,删除成功,然后我再做任何需要使用结果集的操作,都会报错:

com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed(SQLServerConnection.java:388)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.checkClosed(SQLServerStatement.java:978)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.checkClosed(SQLServerResultSet.java:375)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.last(SQLServerResultSet.java:1456)
at huangjin.frame.ResultTableModel.getRowCount(ResultTableModel.java:44)
at javax.swing.JTable.getRowCount(Unknown Source)
at javax.swing.JTable.getCellRect(Unknown Source)
at javax.swing.JTable.valueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
at javax.swing.JTable.changeSelectionModel(Unknown Source)
at javax.swing.JTable.changeSelection(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


请问怎么回事?
...全文
158 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlu_lamp_lamp 2012-06-07
  • 打赏
  • 举报
回复
删除的时候也要把已经删的一行剔除出去
建议贴一下完整的数据库部分的代码
这样才好看出问题
  • 打赏
  • 举报
回复
这部分代码似乎没什么问题,建议单步查看继续后面的执行是不是哪里在用完连接后就随手给关了
比如显示完成后之类的
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

应该是connection已经关闭了
[/Quote]
。。。显然他问的就是为什么关闭了
古布 2012-06-06
  • 打赏
  • 举报
回复
应该是connection已经关闭了
Quester-King 2012-06-06
  • 打赏
  • 举报
回复
自己给自己顶一个

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧