2016-03-22 9 views
0

Hallo Ich versuche, die Ergebnisse aus einer Datenbank in verschiedenen Textfeldern basierend auf der Zeit festgelegt werden. Z.B. Dies ist eine Terminanzeige, die ich die Daten für ein bestimmtes Datum abgerufen habe, aber es nur das erste Ergebnis in das Textfeld eingibt.Java zeigt nur ein SQL-Ergebnis mit Schalter

private void appointmentsView(){ 

    String sqldate = ((JTextField)appointmentDate.getDateEditor().getUiComponent()).getText(); 

    try{ 

    String sql="SELECT appointment_tbl.app_date, appointment_tbl.app_time, patient.Title, patient.first_name, patient.surname, patient.dob FROM appointment_tbl INNER JOIN patient ON appointment_tbl.Customer_ID = patient.Customer_ID where app_date LIKE ('%' || ? || '%') "; 
    pst=conn.prepareStatement(sql); 
    pst.setString(1,sqldate); 
    rs=pst.executeQuery(); 

    if(rs.next()){ 
     String appTime=rs.getString("app_time"); 
     String title=rs.getString("Title"); 
     String fName=rs.getString("first_name"); 
     String sName=rs.getString("surname"); 
     String dob=rs.getString("dob"); 

     switch (appTime) { 
      case "09:00": 
       time0900.setText(title+" "+fName+" "+sName+" "+dob); 
       break; 
      case "09:30": 
       time0930.setText(title+" "+fName+" "+sName+" "+dob); 
       break; 
      case "10:00": 
       time1000.setText(title+" "+fName+" "+sName+" "+dob); 
       break; 
      case "10:30": 
       time1030.setText(title+" "+fName+" "+sName+" "+dob); 
       break; 
      case "11:00": 
       time1100.setText(title+" "+fName+" "+sName+" "+dob); 
       break; 

     } 



    } 
    }catch(Exception e){ 
    JOptionPane.showMessageDialog(null, e); 
    } 

}

Antwort

1

Ihr Code if(rs.next()) nur gibt das erste Ergebniszeile. Sie sollten es durch while(rs.next()) ersetzen, um eine Schleife zu erstellen, die über alle Ergebnisse iteriert.

+0

vielen dank! – ZeeSoft

+0

Der beste Weg, um dem Postautor zu danken, ist, ihre Antwort zu akzeptieren (und möglicherweise auch Upvote) :) – RAnders00