bekomme immer 0 als Ergebnis ausgegeben

Masterpurzel

Mitglied
Hallo,

ich verzweifle hier schon langsam. Ich versuche schon seit Stunden ein Problem zu lösen, leider ohne Erfolg. Daher wende ich mich an euch :)

Problem:

Ich bekomme immer den Wert "0" Ausgegeben obwohl in einer Test-Ausgabe die korrekte Anzahl dargestellt wird.

Java:
public int count() {
        try{
            Class.forName(db_driver);
            try{
                Connection db = DriverManager.getConnection(db_url, db_username, db_password);
                if(search_item.equals("1")) {
                    String rowStatement = "SELECT id, inhalt FROM news WHERE inhalt LIKE ?";
                    PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                    row_prepStmt.setString(1, "%" + search_value + "%");
                    ResultSet row_rs = row_prepStmt.executeQuery();
                    row_rs.next();
                    row_rs.last();
                    rows = row_rs.getRow();
                    System.err.println("News: " + rows);
                    row_rs.close();
                } else if(search_item.equals("2")) {
                    String rowStatement = "SELECT id, username FROM users WHERE username LIKE ?";
                    PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                    row_prepStmt.setString(1, "%" + search_value + "%");
                    ResultSet row_rs = row_prepStmt.executeQuery();
                    row_rs.next();
                    row_rs.last();
                    rows = row_rs.getRow();
                    System.err.println("User: " + rows);
                    row_rs.close();
                }
                db.close();
            } catch(Exception db_error) {
                System.out.println(db_error);
            }
        } catch(Exception db_driver_error) {
            System.out.println(db_driver_error);
        }
        return rows;
    }

In Zeile 24 kommt "2" raus, was auch stimmt. Aber wenn ich mit
Code:
count()
arbeite erhalte ich "0". Wer kann mir helfen?

LG Masterpurzel
 
"rows" ist offensichtlich ein Attribut, denn es wird nicht in dieser (von dir angegebenen Methode count() ) deklariert. Kannst du ganz sicher stellen, dass niemand auf dieses Attribut zur gleichen Zeit zugreifen kann? Probier es doch mal lieber mit einer Variable in der Methode count(). Wenn du den Wert sowieso zurückgibst, brauchst du ihn wohl kaum in einem Attribut speichern.

Wenn das nichts helfen sollte, würde ich den Debugger auf alle Schreibzugriffe aufs Attribut rows setzen und dann mir mal ansehen, was da passiert.
 
Ich habe es ganz oben als

Code:
int rows;
deklariert. Die Rückgabe war ja nur als Test, ob da überhaupt was passiert (Fehler-Ursache-Suche)!. Ich brauche das Attribut wegen diesem Code-Teil:

Java:
private suche_spalten[] suche = new suche_spalten[count()];
//weiterarbeit mit "suche"...

Aber danke schon mal für die Antwort!
 
Zurück