我在InternalFrame的关闭事件中关闭数据的连接,一切都正常,但是关闭以后却抛出这样的异常,因为我是用ResultSet做的Table的Model,所以必须在InteranlFrame的关闭事件中才能将Connection关闭,经调试,数据库可以正常关闭,但关闭以后回到调用事件时就抛出了异常。
程序部分代码: public void this_internalFrameClosing(InternalFrameEvent e) {
    try{
      if (conn != null){
        conn.close();
      }
    }catch(SQLException ex){
      ex.printStackTrace();
    }
  } // 这段代码没有抛出任何异常,能正常关闭Connection;class MyinternalFrameAdapter extends InternalFrameAdapter {
    private InternalFrame adaptee;
    MyinternalFrameAdapter(InternalFrame adaptee) {
      this.adaptee = adaptee;
    }
    public void internalFrameClosing(InternalFrameEvent e) {
      adaptee.this_internalFrameClosing(e);
    }
  } //程序回到这里就抛出了下面的异常;异常如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.checkClosed(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.checkClosed(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.last(Unknown Source)
at mymis.PlanetTableModel.getRowCount(InternalFrame.java:167)
at javax.swing.JTable.getRowCount(JTable.java:1797)
at javax.swing.plaf.basic.BasicTableUI$Handler.repaintLeadCell(BasicTableUI.java:746)
at javax.swing.plaf.basic.BasicTableUI$Handler.focusLost(BasicTableUI.java:764)
at java.awt.Component.processFocusEvent(Component.java:5380)
at java.awt.Component.processEvent(Component.java:5244)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:840)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:530)
at java.awt.Component.dispatchEventImpl(Component.java:3841)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.SequencedEvent.dispatch(SequencedEvent.java:93)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

解决方案 »

  1.   

    同时搜网(www.tongshisou.com)是一个很有创意的搜索网站,是目前最易用,最方便的整合搜索网站,本身不做搜索却把业界的搜索引擎聚合在自己网站中,包括百度,GOOGLE,YAHOO,中搜,爱问,搜狗,奇虎,腾讯搜搜,OPENV,TVIX,有网页 新闻 图片 音乐 视频 地图 工作 餐饮 的搜索,可谓很全哦,搜索起来确实方便,而且很易用,可以把结果同时在一个网页中以分割条形式分开,而且可以分割成2-4个窗口,大家可以一试哦www.tongshisou.com
      

  2.   

    if (conn != null){
            conn.close();
          }再调用之前 已经关闭了connection
      

  3.   

    调用之前并没有关闭Connection呀
    只有当InternalFrame关闭的时候才会执行this_internalFrameClosing(InternalFrameEvent e) 函数
      

  4.   

    com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。
    不是已经提示了吗
      

  5.   

    我的问题就是这,为什么会出现这个异常呢,InternatFrame关闭的时候才去断开数据库的连接,以后我再没有做别的事情,况且能正常的断开数据库连接没有抛出任何异常,但是做完后就出现了异常。
      

  6.   

    错误很明显了 你检查是不是把connection关闭了两次 或者先前隐式地关闭了connection
      

  7.   

    mymis.PlanetTableModel.getRowCount(InternalFrame.java:167)好好查查看