我正在尝试运行以下代码:
ResultSet rs=DatabaseConnection.executeQuery("Select * from csr where c_No="+this.c_No);
if(rs.next()){
ob_id=rs.getInt("ID");
}
ResultSet rs1=DatabaseConnection.executeQuery("Select * from cs_details");
if(rs1.next()){
cs_id=rs1.getInt("cs_Id");
DatabaseConnection.executeUpdate("Insert into transact (ob_ID, cs_ID, quant) values("+this.ob_id+", "+this.cs_id+", 0)");
}
在此代码中,ob_id 仅从数据库返回一个值为 true 的值。但第二个查询返回多行,我只需要保留一个列值,即 cs_id (每次)。但是在执行此代码时,它仅需要数据库中的第一个 cs_id 值,并且仅在“transact”表中插入一条记录。我需要插入具有相应 cs_id 值的所有记录。怎么解决这个问题???
最佳答案
而不是
if (rs1.next()) {
cs_id=rs1.getInt("cs_Id");
DatabaseConnection.executeUpdate("Insert into transact (ob_ID, cs_ID, quant) values("+this.ob_id+", "+this.cs_id+", 0)");
}
做
while (rs1.next()) {
cs_id=rs1.getInt("cs_Id");
DatabaseConnection.executeUpdate("Insert into transact (ob_ID, cs_ID, quant) values("+this.ob_id+", "+this.cs_id+", 0)");
}
循环遍历ResultSet
中的所有记录。
关于java - java中rs.next只返回一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23311774/