2015-06-03 115 views
-5

當我運行此代碼時,代碼顯示錯誤。請幫我解決這個問題。 這裏是我的Java代碼:java中出現循環錯誤

public void kirim(){ 
    try{ 
    koneksi(); 
    String data ="select count(Number) from pbk"; 
    ResultSet rs1 = cn.executeQuery(data); 
    while (rs1.next()){ 
     rs1.getString(1); 
    } 
    int banyakData=Integer.parseInt(rs1.getString(1)); 

    for (int i=0; i<=banyakData ;i++){ 
    String sqi = "select Number from pbk"; 
    ResultSet rs = cn.executeQuery(sqi); 
    while(rs.next()){ 
     rs.getString(sqi); 
    }   
    String sql="insert into outbox (DestinationNumber, TextDecoded, CreatorID) values (" 
    + "'"+sqi +"'," 
    + "'" + jTextArea1.getText()+ "'," 
    + "'1'" 
    + ")"; 
    cn.executeUpdate(sql); 

    } JOptionPane.showMessageDialog(null, "Pesan terkirim"); 
    }catch (Exception e){ 
    JOptionPane.showMessageDialog(null, "Pesan gagal terkirim"); 
    System.out.println(e.getMessage()); 
    } 
} 

這裏是堆棧跟蹤輸出:

After end of result set 
+0

如果您會提供堆棧跟蹤,本來會感激不盡。 – Ouney

+0

我懷疑這個錯誤是由:'rs.getString(sqi);'因爲'sqi'不是一個有效的參數......順便說一句 - 你會因爲沒有提供完整的堆棧跟蹤而失敗,不會告訴我們哪一行觸發錯誤(它也在堆棧跟蹤中)。 – alfasin

回答

0

更改您的代碼

ResultSet rs1 = cn.executeQuery(data); 
int banyakData; 
    while (rs1.next()){ 
     banyakData= rs1.getInt(1); 
    } 

,並刪除

int banyakData=Integer.parseInt(rs1.getString(1)); 

用你的方法你已經擁有了它通過結果集進行擴展,並在完成while循環之後,再次從結果集中提取錯誤。

還簡單地做rs.getString(sqi);rs1.getString(1);在while循環沒有任何意義,如果你dint把結果放在任何變量btw sqi不是一個有效的參數。

+0

我想你的意思是'rs1.getInt(1)' –

+0

@ElliottFrisch謝謝,更新我的回答 – silentprogrammer

+0

感謝兄弟。但在我改變之後,我發現了新的錯誤。這裏是我的錯誤'列'選擇數字從pbk'找不到'。 –