Laden...

Ergebnis eines SQL Statements in ein 2-dimensionales Array schreiben

Erstellt von Trekki1990 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.990 Views
Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 14 Jahren
Ergebnis eines SQL Statements in ein 2-dimensionales Array schreiben

verwendetes Datenbanksystem: <MS SQL>

Hallo!

Wollte mir den Prozess der Datenabfrage etwas erleichtern und habe den SqlDataReader ist eine Klasse gepackt. So brauche ich im Hauptprogramm nur eine Funktion aufrufen, der ich das SQL-Statement übergebe und ein Array mit den Werten zurückbekomme (theoretisch).

Daten die abgefragt werden haben folgende Struktur:


id | Spalte 1 | Spalte 2 | Spalte 3 ... ...
3  | String 1 | String 2 | Int 1 ... ...

also völlig gemischt.
**
Meine Frage: Wie bekomme ich die Daten des Readers in ein Array?**
Meine Arraydefinition sieht so aus:

string[,] readData = null;

Folgender Ansatz bisher:

while (dr.Read())
   {
       readData[HIER WEISS ICH NICHT] = Convert.ToString(dr);
       i++;
   }

Und genau hier weiß ich nicht, wie ich es möglich machen kann, dass mein Array korrekt befüllt wird. Gibt es nicht eine Möglichkeit das ohne Zeilen und Spaltenanzahl zu befüllen? Also praktisch wie eine Kopie?

Ich würde mich über Denkanstöße sehr freuen!
Gruß Trekki

D
615 Beiträge seit 2009
vor 14 Jahren

Hallo Trekki

Kannst du nicht einfach eine List<T> verwenden ?

Als Extension hättest ja auch ToArray() fals benötigt...

MFG

F
10.010 Beiträge seit 2004
vor 14 Jahren

@Trekki1990:
[Hinweis] Wie poste ich richtig? Punkt 1.1.1

Schonmal überlegt ein Einsteigerbuch zu Grundlagen und zu ADO.NET zu lesen?

79 Beiträge seit 2005
vor 14 Jahren

Daten die abgefragt werden haben folgende Struktur:

  
id | Spalte 1 | Spalte 2 | Spalte 3 ... ...  
3  | String 1 | String 2 | Int 1 ... ...  

also völlig gemischt.

Meine Arraydefinition sieht so aus:

string[,] readData = null;  

Hallo Trekki,

bist du sicher, daß du das wirklich willst, was du da schreibst? Du willst Daten aus der Datenbank in ein StringArray packen? Sieh dir mal Typisierte Datasets an, das ist meines Erachtens der bessere Ansatz...

roses are #FF0000 violets are #0000FF
all my base are belong to you

Trekki1990 Themenstarter:in
503 Beiträge seit 2008
vor 14 Jahren

Vielen Dank für eure Antworten!

@KenchU ist mir jetzt auch aufgefallen nach längerem lesen, dass eine ArrayList nicht mehr zeitgemäß ist.
Hier genau was ich vorhabe:
1.SQL-Statement wird meiner Funktion übergeben 1.in der Funktion werden die Daten aus der Datenbank in die List<T> geschrieben 1.Funktion liefert befüllte List<T> zurück 1.ListView (Detailansicht) wird mit Inhalt der List<T> befüllt (Spalten, Zeilen)

Habe versucht mich an die List<T> ranzuwagen. In meinem Fall brauche ich eine verschachtelte List<T>, um eine 2-dimensionalität zu erhalten.

List<List<string>> dataList = new List<List<string>>();

Nur leider erschließt sich meinem Geiste nicht ganz der Aufbau dieser verschachtelten Liste. Bei Arrays gibt es ja Zeilen und Spalten, wie sieht es mit dieser List aus? Könnte mir bitte jemand erklären, welche Struktur diese List<T> hat? Weil Indiezes braucht man ascheinend auch nicht mehr.

Gruß Trekki

79 Beiträge seit 2005
vor 14 Jahren

Hallo Trekki1990,

du bist jetzt zwar einen Schritt weiter, als bei meinem letzten Post, ob der Schritt aber in die richtige Richtung ging, weiss ich nciht.

Nochmal: du willst verschiedenen Datentypen (int, string, ...) in ein -letztenendes- Stringarray-schreiben? Warum? Wenn es dir die typisierten Dataset nicht so angetan haben, hast du dir schonmal LINQ2SQL angeschaut? Könnte für dich durchaus interessant sein...

roses are #FF0000 violets are #0000FF
all my base are belong to you