DataGridView (c# neuling)

chriss_2oo4

Erfahrenes Mitglied
Hi,

Ich bin ein neuling in C# (hab vorgestern damit angefangen, ist bisher auch recht einfach und verständlich), bisher hat mir das Online-Book von Galileo Computing geholfen.

Nun bin ich gerade dabei eine MySQL-Tabelle mit C# auszulesen. Das hat auch geklappt, mit dem Connector von MySQL ist das ja kein großer Aufwand.

Nun hab ich mir die Palette von C# mal durchgeschaut und bin auf das DataGridView gestoßen, damit müsste man ja den Inhalt einer relationalen Tabelle anzeigen können?

Aber ich hab bisher keine gutes Tutorial oder Einführung für das DataGridView gefunden, ist es auch möglich MySQL-Tabellen anzuzeigen? hab die Suche schon verwendet und auch Treffer erzielt, aber die haben mir nicht sonderlich weiter geholfen

THX

Lg chriss
 
Hi chriss,

lade einfach die Daten aus deiner MySQL Tabelle in eine DataTable. Diese weist du dann der DataSource-Eigenschaft des DataGridView zu. Schon werden die Daten angezeigt.

Gruß,
Sebastian
 
Hi Sebastian,

erstmal vielen Dank für deine Antwort!

Das hört sich ja ganz einfach an, aber wo finde ich eine DataTable, nach der Installation des Connector/Net waren nur folgende neu Komponenten in der Toolbox vorhanden;

MySQLConnection
MySQLCommand
MySQLDataAdapter -> für was ist der gut?

Diese DataTable hab ich auch mit zur die Toolbox hinzugefügt, leider kann ich sie in keiner Kategorie finden, hat die in der Toolbox evtl. einen anderen Namen?

Lg Chriss
 
Hi

Die DataTable Klasse ist Bestandteil des .NET-Frameworks und im Namespace System.Data zu finden.
Das Hinzufügen der DataTable zur ToolBox ist unnötig. Die DataTable ist eine einfache Klasse. Eine Tabelle im Speicher sozusagen, sie hat kein UI. Wie Sebastian schon geschrieben hat, kannst du diese jedoch als DataSource eines DataGridView angeben und damit deren Inhalt darstellen.
Beispiele dazu findest du in der MSDN
 
Hi,

erstmal vielen Dank für die Antworten!

Hab's eben ausprobiert und es klappt noch nicht!

Theoretisch hab ich das ganze glaub schon verstanden, DataTable ist eine virtuelle Tabelle im Speicher, die ich mit beliebigen Daten füllen kann, in meinem Fall mit den Daten die ich aus den MySQL Tabellen ausgelesen habe?

Ich erstelle mir eine virtuelle Tabelle, die so wie meine MySQL-Tabelle aufgebaut ist und fülle diese dann mit dem Ergebnis der Abfrage, dass ich durch den Connector/Net erhalten habe?

Wenn ich das ganze richtig verstanden habe, dann ist das doch etwas umständlich oder?

Zu meiner Vorgehensweise:

Zuerst erstelle ich ein neues DataTable-Objekt und gebe diesem einen Namen ("User")
Code:
DataTable userTable = new DataTable("User");

Dann füge ich eine neue Spalte zur Tabelle hinzu:
Code:
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "User_ID";
            column.ReadOnly = true;
            userTable.Columns.Add(column);

Dann füge ich 5 neue Datensätze zur Tabelle hinzu
Code:
            for (int i = 0; i < 5; i++)
            {
                row = userTable.NewRow();
                row["User_ID"] = i;
                UserTable.Rows.Add(row);
            }

Dann füge ich die Tabelle in ein DataSet-Objekt ein:
Code:
            dataSet = new DataSet();
            dataSet.Tables.Add(userTable);

Danach erstelle ich ein DataGrid-Objekt und füge das DataSet-Objekt hinzu

Code:
DataGrid dataGrid1 = new DataGrid();
dataGrid1.SetDataBinding(dataSet, "User");

Zuletzt setze ich das DataGrid als DataSource des DataGridView's:
Code:
            dataGridView.DataSource = dataGrid1;

Was mach ich da falsch?

Lg Chriss
 
Hallo,

row = userTable.NewRow();
row["User_ID"] = i;
UserTable.Rows.Add(row);

Die Variable row ist das ein Object oder welcher Typ ist das? Wie muss ich die deklarieren?
 
Bei einer DataTable musst du eine row vom Typ DataRow deklarieren

C#:
DataRow row = userTable.NewRow();
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück