Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - DataTable in DataGridView
Klabautermann - Mi 01.08.07 01:13
Titel: DataTable in DataGridView
Hallo,
ich probiere Gerade ein wenig mit C# und Datenbanken rum. Nun möchte ich gerne Daten, welche ich per Quelltext erzeuge, in einem
DataGridView abbilden. Zum anlegen der Datenstruktur hat mir
dieses Tutorial [
http://www.aspheute.com/artikel/20001116.htm] das
DataTable Objekt nahe gelegt - aber vielleicht bin ich damit auch auf dem Holzweg.
Meine Frage ist nun, wie Visualisiere ich meine Daten am besten?
Gruß
Klabautermann
Klabautermann - Mi 01.08.07 07:27
Hallo,
nachdem ich mich durch ein Visual Basic Beispiel in diesem
Thread [
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.german.entwickler.dotnet.datenbank&tid=f50b4c48-4761-4fee-8c94-96534cdd5678] bei Microsoft gelesen habe gelang es mir eine Lösung zu erarbeiten. Wichtig scheint zu sein ein Passendes
DataView an zu legen welches dann an das DataGridView gebunden wird.
Maine Lösung sieht so aus, natürlich bin ich für Optimierungsvorschläge dankbar:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| private void button1_Click(object sender, EventArgs e) { DataColumn MyDColumn = null; DataRow MyRow = null; DataTable MyDTable = new DataTable("Products"); DataView MyDataView = new DataView(MyDTable); MyDTable.CaseSensitive = false;
MyDColumn = MyDTable.Columns.Add("Spalte1", System.Type.GetType("System.String")); MyDColumn = MyDTable.Columns.Add("Spalte2", System.Type.GetType("System.String")); MyRow = MyDTable.NewRow(); MyRow["Spalte1"] = "Test 1"; MyRow["Spalte2"] = "Test 2"; MyDTable.Rows.Add(MyRow); dataGridView1.DataSource = MyDataView; dataGridView1.Refresh(); } |
Gruß
Klabautermann
JüTho - Mi 01.08.07 09:59
Hallo,
auf die DataView kannst Du verzichten; und auch die Variable MyDColumn ist nicht nötig. Das Ganze vereinfacht sich also ein klein wenig, ist aber im Wesentlichen korrekt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| private void button1_Click(object sender, EventArgs e) { DataRow MyRow = null; DataTable MyDTable = new DataTable("Products"); MyDTable.CaseSensitive = false;
MyDTable.Columns.Add("Spalte1", System.Type.GetType("System.String")); MyDTable.Columns.Add("Spalte2", System.Type.GetType("System.String")); MyRow = MyDTable.NewRow(); MyRow["Spalte1"] = "Test 1"; MyRow["Spalte2"] = "Test 2"; MyDTable.Rows.Add(MyRow); dataGridView1.DataSource = MyDTable; dataGridView1.Refresh(); } |
Die DataView als DataSource ist nützlich, wenn Du zur Laufzeit
variabel selektieren und immer nur einen Teil der Daten anzeigen willst. Beispiel: Die DataTable enthält alle Kombinationen PLZ+Ortsnamen, aktuell suchst Du alle PLZ zu "Berlin".
Gruß Jürgen
Klabautermann - Mi 01.08.07 10:16
Hallo,
JüTho hat folgendes geschrieben: |
auf die DataView kannst Du verzichten |
oh, dann habe ich bei meinen Experimenten wohl zu umständlich gedacht (habe immer Versucht
MyDTable.DataSet zu zu weisen aber es nicht direkt probiert :().
JüTho hat folgendes geschrieben: |
Die DataView als DataSource ist nützlich, wenn Du zur Laufzeit variabel selektieren und immer nur einen Teil der Daten anzeigen willst. Beispiel: Die DataTable enthält alle Kombinationen PLZ+Ortsnamen, aktuell suchst Du alle PLZ zu "Berlin". |
Ah, sehr interessant das werde ich mir dann heute Abend mal genauer ansehen.
Danke für die Informationen
Klabautermann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!