tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
240
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    lester lester ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    4
    So .. kurz vor Verzweiflung : )
    Vor allem weil es schonmal klappte.

    Kurz und knapp: ich hätte gern die Anzahl der rows einer Tabelle.
    In der Kommandozeile klappt es, dort gebe ich:
    SELECT count(*) FROM user;
    ein und erhalte die 2.

    Derselbe Befehl gibt mir in der JAVA-Datei aber immer eine 0.
    Habe es schon auf mehrere Wege probiert, hier mal der aktuelle Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    Statement stmt = null;
            ResultSet rs   = null;
            int rowCount;
            try {
              stmt = conn.createStatement();
              rs     = stmt.executeQuery("SELECT COUNT(*) AS rowcnt FROM "+tableName);
              rs.next();
              rowCount = rs.getInt("rowcnt");
     
                 (etc ..)
    Seltsam ist, wenn ich die Methode rs.first() ausgebe, bekomme ich ein true - aka, dass es einen ersten Wert gibt.
    Dann habe ich es mit dem Label probiert:
    Code :
    1
    2
    3
    
    rs   = stmt.executeQuery("SELECT COUNT(id) FROM "+tableName);
    rs.next();
    rowCount= rs.getInt("id");
    Und bekomme eine Exception zurück:
    java.sql.SQLException: Column 'id' not found.

    Aber 'id' gibt es in der DB doch ?
    Gestern klappte alles .. habe nur die DB neu aufgesetzt und id mit AUTO_INCREMENT versehen .. wüsste aber nicht warum das die Probleme verursachen sollte.
    Ach und das Zählen der Columns geht einwandfrei, mit selber Syntax wie zuvor.

    Warum bekomme ich eine 0 zurück und warum soll es das Feld id nicht geben ?
    Auch die anderen Felder wie firstname, lastname, admin gibt es angeblich nicht.

    Gestern hatte ich es so:
    Code :
    1
    2
    3
    
    rs   = stmt.executeQuery("SELECT count(id) FROM "+tableName);
    rs.next();
    rowCount= rs.getInt(1);

    Und wie erwähnt .. klappte einwandfrei.

    Achso nochwas:
    Code :
    1
    2
    3
    4
    5
    
    stmt = conn.createStatement();
              rs   = stmt.executeQuery("SELECT * FROM " + tableName);
              ResultSetMetaData rsMetaData = rs.getMetaData();
              colCount = rsMetaData.getColumnCount();
              System.out.println(rsMetaData.getColumnLabel(1));
    Das System.out gibt mir als Label an erster Stelle "id" zurück ..
    Also MUSS es das ja geben ? -.-
    Geändert von lester (30.09.11 um 16:50 Uhr)
     

  2. #2
    lester lester ist offline Grünschnabel
    Registriert seit
    Sep 2011
    Beiträge
    4
    Hab ne 2. DB erstellt .. selbe Dinge probiert, selbe Ergebnisse .. dann wieder zurückgeswitcht und ka warum aber es geht.
    Nix am Code geändert .. was weiß ich.
    Jedenfalls keine Hilfe mehr notwendig.
     

Ähnliche Themen

  1. [C++] QTableView rowCount
    Von Avedo im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 31.01.11, 16:12
  2. ROWCOUNT machen auf einen Statement
    Von Paspirgilis im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 24.02.10, 21:11
  3. Antworten: 5
    Letzter Beitrag: 27.07.09, 01:24
  4. JDBC und MYSQL
    Von freakxnet im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 26.08.07, 03:40
  5. Antworten: 0
    Letzter Beitrag: 05.01.06, 18:45