我正在尝试运行以下代码:
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值的所有记录。如何解决这个问题?
答案 0 :(得分:3)
而不是
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)");
}
DO
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
。
答案 1 :(得分:-1)
将if条件替换为while循环以迭代所有现有行。