2013-04-03 88 views
1

嗨,這是我的下一個按鈕的java代碼。Java代碼的下一個按鈕

但它只能記錄到一條記錄上,即在最後一條記錄移到第一條記錄後。

如何通過整個數據庫條目來移動它。

PLZ提供了一些建議。

public void Next() { 
    Connection con = null; 
    ResultSet rs = null; 
    try { 
     con = DBConnection(); 
     PreparedStatement pstmt = con.prepareStatement("select * from data", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 
     rs = pstmt.executeQuery(); 
     if (rs.next()) { 
      field1.setText(rs.getString("Name")); 
      field2.setText(String.valueOf(rs.getInt("Age"))); 
     } else { 
      rs.previous(); 
      JOptionPane.showMessageDialog(nxtbtn, "end of file"); 
     } 
    } catch (Exception e) { 
     // TODO: handle exception 
    } finally { 
     try { 
      rs.close(); 
     } catch (SQLException err) { 
      JOptionPane.showMessageDialog(nxtbtn, err.getMessage()); 
      // TODO: handle exception 
     } 
    } 
} 
+1

用於下注的幫助更快發佈[SSCCE](http://sscce.org/),簡短,可運行,可編譯, – mKorbel

+0

請原諒原因在於'PreparedStatement聲明瞭'ResultSet.CONCUR_UPDATABLE' – mKorbel

回答

1

當你調用next,它重新加載所有從數據庫中結果的第一行之前將光標移動到剛纔,呼籲rs.next會移動到第一行。

是否只查詢一次,大概是當你需要顯示下一條記錄時。

在您的next方法中,只需調用rs.next()將光標移動到結果集中的下一個可用行。

當然,你需要繼續管理該錯誤狀態;)

0

你需要得到resultsetnext()方法的一面。每次撥打next()重置resultset,然後cursor重新開始。

0

如果正確理解它,你想使用下一個按鈕來點擊分組結果集?

然後你就可以讀取數據庫並將它存儲在下一個按鈕方法之外的結果集中。

目前看來,您每做一次點擊就可以創建一個新的結果集,只讀取第一組數據。

private Connection con = DBConnection(); 
private ResultSet rs = null; 
private Statement stmt = null; 
public void onLoad() 
{ 
stmt = con.createStatement(); 
rs = stmt.executeQuery("YOUR-CODE-HERE"); 
} 

現在在接下來的方法經過與每個RS單擊

0

rs.next()將光標移動到下一個可用的row.thats爲什麼它顯示一個記錄。像下面

while(rs.next()) 

移動使用while(rs.next())

0

移動一個記錄着像下面

rs.next() 

移動通過所有的 '下一個' 記錄回像下面

rs.previous()