Java 连接正忙,正在处理另一个hstmt的结果
我试图迭代ResultSet值以在while循环中插入查询。 代码片段如下所示:Java 连接正忙,正在处理另一个hstmt的结果,java,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
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
请您建议如何摆脱它。这是由于您对同一连接打开了一个打开结果集。例如,您执行一个SqlCommand以选择表中的所有行,而结果集未被清空,如果您尝试使用相同的连接执行另一个SqlCommand,则会出现此错误消息 要解决此问题,您有两个选择: a。确保在发送下一个SqlCommand之前从挂起的结果集中读取了rest数据
b。使用MARS多个活动结果集连接设置可在连接中启用多个活动结果集 在C中,可以在使用命令对象后对其进行处理。命令对象的自动垃圾不够。尝试显式地释放它。也许你需要的是一份声明。只是猜测。您是否尝试使用第二条语句进行插入?stmt2=con.createStatement?是。。第二个,即stmt1,用于inserting@LGPA:谢谢你的回复。。。但是我没有第二个选择。。你能提供一些关于这个项目的演示吗same@LGPA:但是我在这个特定的程序中使用SQL server 2000。。而且2000不支持itMARS…那么在使用另一个结果集之前,您只有关闭一个结果集的选项了!非常感谢你。。。一旦我为stmt1使用了不同的连接对象,我就得到了所需的输出。。。