Announcement

Collapse
No announcement yet.

schleife geht nicht??

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • schleife geht nicht??

    Hallo leute,
    ich schreibe ein programm das auf eine datenbank zugreift, liest und schreibt.
    ich habe eine tablle kunde und will jetzt bei meiner eingabe maske überprüfen ob ob primär schlüssel verletzt ist und es dem User ausgeben.
    Ich habe das problem das irgendwie die schleifen nicht gehen bzw sie aktualisieren sich nicht..
    hier die methoden :
    diese methode ist in der datenbankklasse die vom textfeld den parameter knr empfängt..
    <pre>public boolean searchPK(String knr)
    {
    try{
    String classname ="com.mysql.jdbc.Driver";
    try{
    Class.forName(classname);
    }catch(ClassNotFoundException e1) {
    e1.printStackTrace();
    }

    Connection con;
    con = DriverManager.getConnection("jdbc:mysql://localhost/****", "***", "");

    String query = "Select kunden_nr from Kunde";
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);

    while(rs.next())
    {
    kunden_nr = rs.getString("Kunden_Nr");

    if(kunden_nr.equals(knr))
    {
    flag1 = 1;
    }
    }
    if (flag1==1){
    flag=true;
    }
    else{
    flag=false;
    }

    rs.close();
    stmt.close();

    }catch(SQLException e)
    {
    System.out.println(e.getMessage());
    }
    return flag;
    }</pre>
    hier ist die meine JDialogKlasse wo ich die daten eingebe..
    <pre>protected boolean checkPK()
    {
    boolean ok = true;

    if (db.searchPK(tKnr.getText())==true)
    {
    ok = false;

    JOptionPane.showMessageDialog(this,
    "Kundennummer schon vorhanden!",
    "Fehler", JOptionPane.ERROR_MESSAGE);

    }else
    {
    db.kunde_neu(tName.getText(), tVorname.getText(), tKnr.getText(), tOrt.getText(),tRaum.getText(),tBezeichnung.getTex t());
    }


    return ok;
    }</pre>

    hier ist noch eine methode die checkfields aufruft um zu gucken ob alle felder ausgefüllt wurden und ruft auch die checkPk() auf..:
    <pre>public void okay()
    {
    // Eingabefelder prüfen und holen
    if ( checkFields() != true )
    return;

    if ( checkPK() != true )
    return;

    dispose();
    }</pre>

    hier ist das was in actionperformed aufgerufen wird...:
    <pre>if (e.getSource() == bOK)
    {
    okay();
    }</pre>

    problem ist das er mir zwar immer ausgibt wenn die kunden_nr vorhanden ist, aber wenn ich eine eintrage die nicht vorhanden ist gibt er mir trotzdem die meldung das es schon vorhanden ist, obwohl die KNR nicht vorhanden ist..??
    irgendwie hat er anscheinend immernoch die alte nummer im speicher oder so?
    gibt es sowas wie ne refresh funktion so das er das von neu beginnt ??

    weis ist kompliziert das jetzt nachzuvollziehen hoffe aber das ihr mein problem erkennt und mir evtl helfen könnt

    danke euch schon mal für euere mühen

  • #2
    Hi Leute,

    ich bin diesem problem einfach aus dem weg gegangen und vergebe die Kundennummern automatisch.. die andere variante hab ich nicht gebacken bekommen... :

    Comment

    Working...
    X