Autor Beitrag
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 01.08.07 01:13 
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 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 01.08.07 07:27 
Hallo,

nachdem ich mich durch ein Visual Basic Beispiel in diesem Thread 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
ausblenden 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);
            //  hier andere Zuordnung
            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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 01.08.07 10:16 
Hallo,
user profile iconJü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 :().

user profile iconJü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