ResultSet.next gibt immer false.

  • Themenstarter Themenstarter Mikrowelle
  • Beginndatum Beginndatum
M

Mikrowelle

Hallo ich habe mehrere Tabellen erstellt die alle 5 Spalten und 5 Zeilen haben sowie mit Inhalt befüllt sind.

Ich will nun auf die Tupel zugreifen.
Code:
 stmt = dbConnection.createStatement();
            String query = "SELECT * FROM Bibi";
            ResultSet rSet = stmt.executeQuery(query);
            System.out.println("Spalte");
            System.out.println(rSet.next());
            while (rSet.next()) {
                
                System.out.println(rSet.getString(1)+"\n");
            }
            }
Doch das funktioniert nur bei 4 von 5 tabellen. Bei einer ergibt rSet.next immer false obwohl da drinne 5 Zeilen und 5 Spalten voll sind.

Wenn ich mit meinem anderen Programm den Befehl
Code:
select * from NAME
ausführe, sehe ich alle Zeilen, so das eine leere Tabelle wirklich ausgeschlossen ist.

Die Tabelle
Code:
create table Bibi(
Bibinummer int not null PRIMARY KEY,
Bibidatum varchar(40),
Kundennummer integer not null,
BibiName varchar(15),
BibiAnschrift varchar(15),
Subnummer integer not null,
Subdatum varchar(40)
)
Inahlt
Code:
insert into Bibi
values(1,'Datum',1,'Name','Anschrift',1,'Datum')
values(2,'Datum',1,'Name','Anschrift',1,'Datum')
values(3,'Datum',1,'Name','Anschrift',1,'Datum')
values(4,'Datum',1,'Name','Anschrift',1,'Datum')

Hat jemand Ideen ?
 
Zuletzt bearbeitet von einem Moderator:
1) ResulteSet.next() < die Klammern sind schon wichtig
2) Mal den kompletten Source
3) Dump deiner Datenbank zum testen

Also wenn du mich jetzt so dierekt nach Ideen fragst ... denn meine Glaskugel is mir leider kaputt gegangen.
 
ähäm ... wo bitte sind das 5 zeilen ?
Ich sehe in deine INSERT INTO nämlich nur 4.
Und da damit auch nur 4 Datensätze vorhanden sind wird beim 5ten Durchlauf richtigerweise FALSE returned ...
 
Der Java Code soll doch einfach alles ausgeben auch wenn es da nur 1 wäre müsste dieser einer true ergeben. So wie ich das sehe ist es egal wieviel Datensätze drine sind deswegen wird doch kein false returned!?

Hat sich erledigt. Ich habe vergessen in der DB die änderungen zu bestätigen
 
Zuletzt bearbeitet von einem Moderator:
Nein, er hat gesagt, dass es bei vier Tabellen geht und bei der fünften nicht, und nicht, dass es beim fünften Datensatz nicht geht.
 
Naja dazu sag ich nur falsche Ausdrucksweise : er sagt was von 5 tabellen mit 5 spalten und 5 zeilen .... aber er hat in seinem INSERT INTO ja nur 4Datensätze stehen.
 
Doch das funktioniert nur bei 4 von 5 tabellen. Bei einer ergibt rSet.next immer false
Habe nicht alle inserts hier rein kopiert weil es bezogen auf mein java code wie oben schon gesagt garkeine auswirkungen hat! Sobald 1 Datensatz drinn ist. Muss ResultSet.next mindestens ein mal true sein.

Spielt ja jetzt keine Rolle, das problem war, das ich nach jeder änderung in der DB nen button klicken muss, was ich nicht wusste. Eine art "Änderung endgültig speichern" das habe ich nicht gemacht deswegen kamm der Fehler. Bin halt noch neu in SQL

Trotzdem danke an alle
 
Zurück