Also, ich weis nicht ob ich deine Frage richtig verstehe aber ich versuch es mal zu interpretieren.
Du möchtest der Klasse ein Query übergeben, dass dir dann das Ergebis zurückgibt?
Nun kann es ja sein, dass wen du z.B. "SELECT * FROM TABLE" machst, dass du mehrere Ergebnisse bekommst, z.B. so:
1 | Herbert | Müller | Weinstrasse 41 | 23456 | Herborn
2 | Willi | Winzig | Dorfstrasse 12 | 21334 | Ulm
3 | Doro | Thea | Fasanenalee 13 | 12345 | Füssing
Das könntest du mit deiner Klasse ja nicht behandeln, da du ja nur einen Datensatz zurückgeben könntest.
Meine spontane Idee wäre folgendes:
List <string[]> Daten; // zum speichern der Daten
dann nach dem Query:
while(dr.Read())
{
string[] SubDaten = new string[dr.FieldCount]; // Erzeugt ein String-Array, das so lang ist wie die Anzahl der Felder in der Ergebnisliste.
for(int i = 0; i<dr.FieldCount; i++)
SubDaten[i] = Convert.ToString(dr[i]); // Feld[i] in Array schreiben
Daten.Add(SubDaten); // Nach Schleifendurchlauf das Array in die Liste adden
}
dann haste am Ende in Daten deine Ergebnisliste und brauchst die nur noch returnen...
Meintest du sowas? Hoffe das hilft dir. Falls das unperformant ist, bin dankbar für Hinweise... 🙂
Gruß David.