Kauki hat folgendes geschrieben: |
ok sorry tut mir leid naja war bisschen in eile |
Aber Du erwartest Hilfe, also erschwere uns bitte nicht die Arbeit. Wenn ich fundiert antworten will, kostet das meine Zeit, die ich Dir schenke.
Kauki hat folgendes geschrieben: |
ich möchte nun gern wissen wie ich hier einzelne spalten Variablen zuweisen kann bzw wie ich einfache strings dort hinuasgeben kann. |
Ganz einfach: Das
DataGridView soll eben nicht "solo" stehen, sondern - wie Du es im Titel angegeben hast - mit einer
DataTable. Wenn diese Tabelle richtig erstellt und zugewiesen wurde, macht das DGV alles alleine.
Kauki hat folgendes geschrieben: |
Datenquelle habe ich keine angegeben da keine Datenbank im hintergrund läuft. Im späteren soll das programm einmal über einen Button eine XML datei öffnen die mit einer Bibliothek ausgelesen wird... |
"Datenbank im Hintergrund" ist unabhängig von "Tabelle im Arbeitsspeicher". Es ist auf jeden Fall sinnvoll, von vornherein mit einer DataTable zu arbeiten, die dem xml-Inhalt entspricht (vorausgesetzt, die xml-Datei ist passend aufgebaut). Erzeuge eine DataTable mit passenden Spalten (ganz wichtig, ohne Spalten ist eine DataTable sinnlos); mit ReadXml/WriteXml kannst Du den Dateiinhalt lesen und schreiben.
Kauki hat folgendes geschrieben: |
tja jetzt kommt der Fehler das es den Spaltenname nicht in Tabelle vorhanden ist. |
Eben: Es fehlt die Definition der Spalten.
Kauki hat folgendes geschrieben: |
hier nochmal der überarbeitet code |
Und nochmal: Code soll
als C# markiert werden, aber doch nicht als Liste!
Kauki hat folgendes geschrieben: |
aja zu den Spalten wie generier ich die das hab ich noch nicht ganz verstanden?? |
Da hilft leider mein Tipp mit den OpenBooks zu wenig, aber die
SDK-Doku: Die Beispiele zum
DataTable-Konstruktor erstellen auch ein paar Spalten und Zeilen.
Aber den
Geltungsbereich von Variablen hast Du immer noch nicht beachtet: Eine Variable, die
innerhalb einer Methode deklariert wird, ist nur dort gültig. Ein neues DGV und eine neue DataTable, die innerhalb von "befuellen" erstellt werden, sind nach dem Ende dieser Methode schon wieder vergessen.
Vorschlag für das Vorgehen:
- Im Designer erzeugst Du das DataGridView, aber ohne Details zu Zeilen und Spalten.
- Im Formular deklarierst Du eine DataTable.
- Im Konstruktor des Formulars nach InitializeComponents erzeugst Du die DataTable mit ihren Spalten.
- Sofort danach kommt die Zuweisung der DataSource.
An diesem Konzept wird nichts mehr geändert. Für die
Daten hast Du die folgenden Möglichkeiten (stark vereinfacht); dafür bieten sich eigene Buttons an:
- Durch ReadXml kannst Du ggf. den Inhalt der xml-Datei in die DataTable einlesen und siehst sofort alle Inhalte.
- Durch NewRow + Rows.Add kannst Du per Code Zeilen hinzufügen (die Du ebenfalls sofort siehst).
- Durch WriteXml kannst Du den gesamten Inhalt speichern.
Damit Du alles besser siehst, schlage ich vor, zunächst eine einfache DataTable zu erzeugen, dann zwei Zeilen per Code hinzuzufügen und das per WriteXml zu speichern. Dann kannst Du die xml-Datei untersuchen und die Zusammenhänge erkennen.
Woher weißt Du, dass ich ein Weißer bin mit "Weißheiten"? Ich könnte auch ein Farbiger sein. Jürgen