rs.next只返回java中的一个结果

时间:2014-04-26 13:45:32

标签: java sql database

我正在尝试运行以下代码:

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值的所有记录。如何解决这个问题?

2 个答案:

答案 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循环以迭代所有现有行。