我正在尝试迭代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
你能否建议如何摆脱它..
答案 0 :(得分:4)
这是由于您针对同一连接打开了打开结果集引起的。例如,您执行SqlCommand以从表中选择所有行,而结果集未耗尽,您尝试使用相同的连接执行另一个SqlCommand,您将点击此错误消息。
要解决此问题,您有两种选择:
一个。在发送下一个SqlCommand之前,请确保从待处理结果集中读取其余数据。
湾使用MARS(多个活动ResultSet)连接设置在连接中启用多个活动结果集。
答案 1 :(得分:0)
在C#中,Dispose
Command
对象在使用后可能会出现这种情况。 Command
对象的Autogarbage是不够的。尝试明确释放它。也许Statement.close()
就是你所需要的。只是猜测。