C# - Werte Tabellarisch darstellen... Wie?

...komplette Frage anzeigen

2 Antworten

Ganz einfaches Bsp (nicht die schnellste Art):

DataTable tab2 = new DataTable();
DataColumn col1 = tab2.Columns.Add("Wert1", typeof(string));
DataColumn col2 = tab2.Columns.Add("Wert2", typeof(string));

 for (int i =0; i<100; i++)
      tab2.Rows.Add(Guid.NewGuid().ToString(), Guid.NewGuid().ToString());

this.dataGridView1.DataSource = tab2;

Bei großen Datenmengen ist das Teil sehr langsam, dann müsstest Du andere Lösung nehmen. Den Link suche ich noch raus.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Michael339
17.05.2013, 20:14

Ich hoffe, dass Gutefrage dieses mal den Link nicht komplett zerstümmelt: /Areas/Epx/Content/500.htm?aspxerrorpath=/en-us/library/15a31akc.aspx

0
Kommentar von Michael339
17.05.2013, 20:21

Noch ein Link, der Dir die Entscheidung vielleicht einfach macht: http://stackoverflow.com/questions/3580237/best-way-to-fill-datagridview-with-large-amount-of-data

Ich selbst halte nicht viel von DataTables.. gerade dann nicht, wenn sie aus der Datenbank befüllt werden. Es ist zwar der - aus Programmiersicht - einfachste Weg, aber die Verwendung von DataReader ist immer noch der schnellste Weg! Gab da vor einiger Zeit in einer namhaften .net-Zeitschrift einen Vergleich. Ich nutze Datagrids lieber mittels Databinding von eigenen Objekten (und Auslesen der Daten aus Datenbank mittels DataReader).

0
Kommentar von Michael339
17.05.2013, 20:31

Sorry, kleine Korrektur: Die Verwendung (insbesondere das Befüllen von DataTables) wird dann langsam, wenn man wie es in den Datenbank üblich ist, auch die Verknüpfungen (Primary Key, Foreign Key; unique Eigenschaften) verwendet.

Aber: Nie das Datagridview selbst befüllen. Das ist die langsamste der Arten.

0

Eine ganz einfache Weise, das DataGridView eigens anzusteuern, verläuft wie folgt. Zuerst ziehst du ein DataGridView in dein Form und nennst es der einfachhalber um in "dgv". Indem du oben rechts im DataGridView auf den Pfeil klickst, kannst du mit Hilfe des erscheinenden Kontextmenu alle benötigten Spalten anlegen. Der Rest ist einfach. Im folgenden Code wird eine Zeile eingefügt und die Zellen gefüllt.

        dgv.Rows.Add();
        dgv[0, 0].Value = "Hallo";
        dgv[1, 0].Value = "Du";

Im Ergebnis wird eine Zeile im Grid angezeigt, die erste Zelle enthält "Hallo", die zweite Zelle enthält "Du". Auf diese Weise kannst du z.B. in einer Schleife beliebige Zeilen einfügen. Beim Befüllen musst du nur darauf achten, nicht auf Spalten oder auch Zeilen zuzugreifen, die nicht existieren.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Toraka
20.05.2013, 20:51

Die Zeit für Änderungen war abgelaufen, daher hier die Ergänzung. Für das Codebeispiel müssen zwei Spalten angelegt werden. Da wir über den Index auf die Zellen zugreifen, ist der Name der Spalten beliebig wählbar.

0

Was möchtest Du wissen?