连接忙于另一个hstmt的结果

时间:2013-02-22 07:38:43

标签: java

我正在尝试迭代ResultSet值以在while循环中插入查询。 代码段如下:

    String sel="select roll_no from Nursery";
    rs=stmt.executeQuery(sel);
    stmt1=con.createStatement();
    int aa;
    while(rs.next())
    {
        aa=rs.getInt(1);
        stmt1.executeUpdate("insert into [Nursery_FirstTerminal_marks](roll_no)values("+aa+")");
        //stmt.close();
    }

    JOptionPane.showMessageDialog(null, "Data has been inserted");
}
    catch(Exception e)
    {
        System.out.println(e);
        // JOptionPane.showMessageDialog(null, e);
    }

但抛出下面给出的错误。

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt

你能否建议如何摆脱它..

2 个答案:

答案 0 :(得分:4)

这是由于您针对同一连接打开了打开结果集引起的。例如,您执行SqlCommand以从表中选择所有行,而结果集未耗尽,您尝试使用相同的连接执行另一个SqlCommand,您将点击此错误消息。

要解决此问题,您有两种选择:

一个。在发送下一个SqlCommand之前,请确保从待处理结果集中读取其余数据。

湾使用MARS(多个活动ResultSet)连接设置在连接中启用多个活动结果集。

答案 1 :(得分:0)

在C#中,Dispose Command对象在使用后可能会出现这种情况。 Command对象的Autogarbage是不够的。尝试明确释放它。也许Statement.close()就是你所需要的。只是猜测。