tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
303
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    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.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    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 :
    1
    
    count()
    arbeite erhalte ich "0". Wer kann mir helfen?

    LG Masterpurzel
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    "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.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Ich habe es ganz oben als

    Code :
    1
    
    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:

    Code java:
    1
    2
    
    private suche_spalten[] suche = new suche_spalten[count()];
    //weiterarbeit mit "suche"...

    Aber danke schon mal für die Antwort!
     

Ähnliche Themen

  1. Ergebnis soll immer 2 Nachkommastellen haben
    Von keks1984 im Forum .NET Café
    Antworten: 20
    Letzter Beitrag: 22.08.07, 15:17
  2. $zufall - immer das gleiche Ergebnis - Mysql
    Von elena6 im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 25.03.07, 18:54
  3. Es wird nur 1 Ergebnis ausgegeben
    Von kaeZe im Forum PHP
    Antworten: 4
    Letzter Beitrag: 29.05.06, 22:52
  4. Antworten: 1
    Letzter Beitrag: 23.09.04, 20:11
  5. Bekomme nur ein Ergebnis zurück
    Von Sevenger im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 24.11.03, 13:14