5

我正在尝试迭代 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

你能建议如何摆脱它..

4

2 回答 2

7

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

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

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

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

于 2013-02-22T07:41:00.680 回答
0

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

于 2016-09-24T08:36:11.593 回答