grinchi hat folgendes geschrieben : |
C#-Quelltext 14: 15: 16: 17: 18: 19: 20: 21: 22:
| /* ... */ while (Reader.Read()) { while (Reader.FieldCount > x) { db_value.Add(Reader.GetValue(x)); x++; value_complete.Add(db_value); } } | |
Ich schätze mal,
value_complete soll die Zeilen enthalten, und
db_value jeweils die Feldwerte. Richtig?
Dann hast du die markierte Anweisung einfach in die falsche Schleife geschrieben. Bisher erstellst du bei jeder Spalte gleich eine neue Zeile. Richtig wäre die Anweisung wohl nach dem
}.
Außerdem musst du
db_value jedes Mal neu erstellen, denn das alte
db_value darf ja nicht mehr verändert werden. Also noch ein
db_value = new ArrayList; vor die innere Schleife:
C#-Quelltext
14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| /* ... */ while (Reader.Read()) { db_value = new ArrayList(); while (Reader.FieldCount > x) { db_value.Add(Reader.GetValue(x)); x++; } value_complete.Add(db_value); } |
Ich finde den Code allerdings ziemlich unübersichtlich und habe eine Weile gebraucht, bis ich ihn verstanden habe. Du solltest eines beherzigen: Deklariere Variablen immer erst, wenn du sie brauchst.
db_value kannst du zum Beispiel in der äußeren Schleife initialisieren und dort auch erstellen, dann kann so ein Fehler, wie er dir passiert ist, gar nicht erst auftreten.
Was ist eigentlich
v?
Grüße,
Yogu
Grüße,
Yogu