2014-04-26 62 views
0

結果只有一個我試圖下面的代碼運行:rs.next返回的Java

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收益從數據庫這是真的只有一個值。但是第二個查詢返回多行,我只需要保留一個列值,即cs_id(每次)。但在執行此代碼時,只需要在數據庫&中的第一個cs_id值在「transact」表中只插入一條記錄。我需要插入所有記錄與cs_id各自的值。如何解決這個問題呢???

回答

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)"); 
} 

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的所有記錄。

+0

while循環僅返回一條記錄 – user3576078

+0

@ user3576078則返回1條記錄。 – user432

+0

但是查詢結果「Select * from cs_details」返回數據庫中存在5條記錄 – user3576078

-1

如果使用while循環遍歷所有現有行,則進行替換。

+0

如果您有其他方法,請在前面的答案中提供相同的解決方案,然後請發佈詳細說明。 –