2013-04-22 4 views
0

OnClick Я выполняю этот учебник о создании базы данных в Netbeans: http://www.homeandlearn.co.uk/java/database_scrolling_buttons.html У меня есть кнопка Далее на моих JPanel, который должен вызывать этот метод:базы данных в Netbeans кнопку

private void btnNextActionPerformed(java.awt.event.ActionEvent evt) {           
    try { 
     String host = "jdbc:derby://localhost:1527/Employees"; 
     String uName = "bjorn"; 
     String uPass= ""; 
     conN = DriverManager.getConnection(host, uName, uPass); 
     stmtN = conN.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
     String SQL = "SELECT * FROM App.Workers"; 
     rsN = stmtN.executeQuery(SQL); 

     if (rsN.next()) { 
      int id_col = rsN.getInt("ID"); 
      String id = Integer.toString(id_col); 
      String first_name = rsN.getString("First_Name"); 
      String last_name = rsN.getString("Last_Name"); 
      String job = rsN.getString("Job_Title"); 

      textID.setText(id); 
      textFirstName.setText(first_name); 
      textLastName.setText(last_name); 
      textJobTitle.setText(job); 
     } 
     else { 
      rsN.previous(); 
      JOptionPane.showMessageDialog(Workers.this, "End of File"); 
     } 
    } 
    catch (SQLException err) { 
     JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
    }  // TODO add your handling code here: 
}   

Этот метод должен показать следующая запись базы данных на JPanel, но я не могу заставить ее работать. Кто-нибудь знает, что я делаю неправильно?

+0

Хотя я почти уверен, что вы уже видели этот сайт: https://netbeans.org/kb/docs/ide/java-db.html это еще один учебник по багам дерби с netbeans. Но я действительно хотел спросить, проверили ли вы свою базу данных и какие запросы вы используете разными способами? Например, Netbeans может напрямую установить соединение с вашей базой данных, и вы можете протестировать свои запросы простым способом, чтобы убедиться, что в ваших запросах нет или нет uri-запросов. – GameDroids

+0

Как это сделать? – user1189952

+0

Я не думаю, что запрос неверен, потому что, когда я использую rsN.last() вместо rsN.next(), отображается последняя запись базы данных. – user1189952

ответ

0
 PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM App.Workers",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); 

     ResultSet rs = pstmt.executeQuery(); 

    if(rs.next()) 
     { 
     int id_col = rsN.getInt("ID"); 
     String id = Integer.toString(id_col); 
     String first_name = rsN.getString("First_Name"); 
     String last_name = rsN.getString("Last_Name"); 
     String job = rsN.getString("Job_Title"); 

     textID.setText(id); 
     textFirstName.setText(first_name); 
     textLastName.setText(last_name); 
     textJobTitle.setText(job); 

} 
    else 
{ 
    rs.beforeFirst(); 
    JOptionPane.showMessageDialog(Workers.this, "End of File"); 
    } 

Попробуйте это ..

+0

Ваш код заставляет панель снова перейти к первой записи. Но как я могу позволить ему перейти к следующей записи? И откуда твой «род»? – user1189952

+0

'conn' является conncetion ... – karthi

+0

вы можете объявить это утверждение статической переменной .. и удалить' rs.beforeFirst(); 'Тогда попробуйте это. – karthi

0

Объявите Это в Main в Static Resultset rsN; и после соединения с базой данных

try 
    { 
    String host = "jdbc:derby://localhost:1527/Employees"; 
    String uName = "bjorn"; 
    String uPass= ""; 
    conN = DriverManager.getConnection(host, uName, uPass); 
    stmtN = conN.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
    String SQL = "SELECT * FROM App.Workers"; 
    Static Resultset rsN = stmtN.executeQuery(SQL); 
} 
catch (SQLException err) { 
    JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
}  // TODO add your handling code here: 

в действие кнопки выполняется Вы можете использовать это ..

private void btnNextActionPerformed(java.awt.event.ActionEvent evt)    {           

    try 
    { 
    if (rsN.next()) { 
     int id_col = rsN.getInt("ID"); 
     String id = Integer.toString(id_col); 
     String first_name = rsN.getString("First_Name"); 
     String last_name = rsN.getString("Last_Name"); 
     String job = rsN.getString("Job_Title"); 

     textID.setText(id); 
     textFirstName.setText(first_name); 
     textLastName.setText(last_name); 
     textJobTitle.setText(job); 
    } 
    else { 
     rsN.previous(); 
     JOptionPane.showMessageDialog(Workers.this, "End of File"); 
    } 
} 
catch (SQLException err) { 
    JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
}  // TODO add your handling code here: 
}   

Он работает, попробуйте это.

+0

Вы пробовали это .. – karthi

Смежные вопросы