[Java] SQL Feld in Textfield speichern

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Ne0.Ka1n, 7. Mai 2008 .

  1. 7. Mai 2008
    SQL Feld in Textfield speichern

    tag!

    Ich habe eine Anwendung mit Datenbankzugriff erstellt. Nun möchte ich nach einem Feld in einer Tabelle in der Datenbank suchen und dann die Restlichen Felder der Reihe in einzelnde Textfelder speichern.

    Das habe ich bisher geschrieben, aber er findet die Felder bzw. die Reihe nicht.
    Code:
    public void ErmSingleLadenButtonActionPerformed(ActionEvent evt) {
     ResultSet rs;
     //Die Attribute für die Datenbankverbindung werden gesetzt
     DB.setmeineVerbindung("jdbc:mysql://localhost/cdverwaltung");
     DB.setBenutzername("root");
     DB.setPasswort("");
     DB.setmeineTreiber("org.gjt.mm.mysql.Driver");
     try {
     int i=0;
     boolean gefunden = false;
     if ( DB.openConnection() ) {
     rs = DB.leseDaten("SELECT * FROM leihtsingle");
     while(rs.next() && gefunden == true){
     rs = DB.leseDaten("SELECT * FROM leihtsingle Where vorgangsnr = \""+i+"\"");
     if(ErmVorgangsnrTextfield.getText() == Integer.toString(rs.getInt("vorgangsnr"))){
     gefunden = true;
     }
     else{
     i++;
     }
    
     }
    
     //Die Verbindung mit der Datenbank wird geschlossen
     DB.close();
     if (gefunden == true){
     FehlermeldungTextfield.setText("Die Daten wurden aus der Datenbank gelesen!");
     }
     else{
     FehlermeldungTextfield.setText("Die Daten konnten nicht gelesen werden!");
     }
     }
     }
     catch(Exception e){
     FehlermeldungTextfield.setText(""+e);
     }
     }
    
    Danke im Vorraus
    ne0.ka1n
     
  2. 7. Mai 2008
    AW: SQL Feld in Textfield speichern

    da liegt der fehler.
    du setzt gefunden oben auf false und er kommt nie in die while schleife. die bedingung lautet es muss einen neuen datensatz geben und gefunden muss true sei.
    in deiner while schleife überschreibst du auch dein resultset. ich glaube das möchtest du auch nicht.
    deine if abfrage ist auch nicht wirklich sinnvoll
    du sucht einem datensatz mit der vorgangsnummer "i", danach prüfst du ob die vorgangsnummer aus dem resultset mit dem eintrag in einem textfeld übereinstimmt.

    ich steige bei dir überhaubt nicht durch wieso machst du nicht einfach:

    Code:
    rs = DB.leseDaten("SELECT * FROM leihtsingle where vorgangsnr = "+ErmVorgangsnrTextfield.getText()+";");
    
    da brauchst du kein while und nix. außerdem fügst du in deinem befehl momentan i ein und umgiebst es mit anführungszeichen. dein sql server interpretiert das als string und kan es gar nicht mit einem int feld vergleichen

    da ist ja alles murks !
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.