2016-04-24 10 views
-1

Ich mache ein Programm, wo Sie sich anmelden und es dauert Sie in einem anderen Rahmen, nachdem Sie sich einloggen .. Dieser Teil des Programms funktioniert, aber ich habe Probleme, es den Benutzernamen und andere Daten zurückzugeben aus der Datenbank. Es verbindet sich mit der Datenbank, aber es gibt die Informationen nicht in JTextField zurück. Wenn ich herausfinden kann, wie man firstName macht, kann ich den Rest herausfinden. Ich verwende Eclipse als meine IDE und SQLite Manager als Datenbank. Es gibt 2 Tabellen Login (Benutzername, Passwort) Student (SID, Vorname, GradeLevel und mehr) Auch Benutzername ist dort ID Start mit einem S (wie S01 usw.). Hier ist der Code.Wie kann ich meinem Programm den Namen des Benutzers aus der Datenbank in JtextField anzeigen lassen?

public class student extends JFrame { 
private JTextField textField; 

public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      try { 
       student frame = new student(); 
       frame.setVisible(true); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
} 
private void ShowInfo() { 

try{ 


    String query="SELECT firstName From Student,Login Where firstname=?"; 
    PreparedStatement ps=conn.prepareStatement(query); 
    ps.setString(1, "firstName"); 
    ResultSet rs= ps.executeQuery(); 
    while (rs.next()) { 
    textField.setText(rs.getString("firstName")); 
     System.out.print(""+textField); 
    }ps.close(); 
    conn.close(); 
    } catch (Exception ex) 
    { 

     JOptionPane.showMessageDialog(null,ex); 
} 


} 

}

+0

Wo stecken Sie fest? Ist das Problem, die richtigen Daten aus der Datenbank zu bekommen? Oder zeigt es die Daten an? Als eine Nebenempfehlung sollten Sie die Java-Code-Formatierungsregeln lernen und befolgen, insbesondere, wie Code und Benennungsregeln korrekt eingerückt werden. Ihr aktueller Kodex verletzt diese, was es für uns schwierig macht, zu verstehen, und warum es für uns schwieriger wird, Ihnen zu helfen? –

+0

Andere Seite Empfehlungen: Verwenden Sie nicht "Null" Layouts und setBounds. Während es anfänglich einfacher erscheint, Guis zu erstellen, ist es auf lange Sicht viel schwieriger. –

+0

Ich habe Probleme mit der Anzeige der Daten. –

Antwort

1
private void ShowInfo() { 

try{ 
    String query="SELECT firstName From Student,Login Where firstname=?"; 
    PreparedStatement ps=conn.prepareStatement(query); 
    ps.setString(1, "firstName"); 
    ResultSet rs= ps.executeQuery(); 
    if(rs.next()) { 
    textField.setText(rs.getString(1)); 
    System.out.print(""+textField); //you are getting data 
    }ps.close(); 
    conn.close(); 
    } catch (Exception ex) 
    { 
     JOptionPane.showMessageDialog(null,ex); //you have a error 
} 
} 

gab es sevral Sache, die in dem Code falsch waren. Zuerst ist dort sollte etwas mit SQL-Statement Student,Login Where firstname falsch sein. sollten Sie diese Zeile textField.setText(rs.getString(1)); ändern, und Sie haben eine while loop, um die Daten zu extrahieren, und Sie planen, eine textfield Daten zu speichern. Das ist sinnlos, wenn Sie mehr als eine Ausgabe von Ihrer Ergebnismenge erwarten, brauchen Sie etwas mehr als ein J-Text-Feld, vielleicht eine J-Tabelle. bt Ich habe Ihre while-Schleife in eine if loop geändert, um eine einzige Ausgabe von der Resultset zu bekommen. Und die andere Sache, die ich in Ihrer Anwendung bemerke, ist, dass Sie nicht die showInfo Methode aufrufen.

+0

Was wäre eine gute Methode, die ShowInfo-Methode aufzurufen? –

+0

bei Windowload oder ich empfehle das nicht bt Sie können dies am Konstruktor aufrufen – Priyamal

+0

'öffentliche void windowOpened (WindowEvent e) { showInfo(); } ' – Priyamal

Verwandte Themen