Hallo,
also erstmal zur Funktion meines Programmes. Ich habe ein leeres DataGridView. In dieses DataGridView schreibe ich nun einige neue Einträge. Nun möchte ich diese Einträge auslesen und in ein DataTable schreiben, um sie weiterverarbeiten zu können.
Das Problem ist, ich finde hierzu keinen Code. Alles was ich finde sind Beispiele, wie man das DataGridView aus der DataTable heraus füllt und die DataTable als DataSource benutzt. Ich möchte aber mein DataGridView per Hand beschreiben, auf einen Button drücken und dann soll der gesamte Inhalt in ein DataTable geschrieben werden und aus dem DataGridView entfernt werden. Die weitere Verarbeitung mit dem DataTable stellt dann kein Problem dar.
Bis jetzt sieht das Ganze leider nur so aus
private void button_Click(object sender, EventArgs e) {
DataTable myDataTable = new DataTable("Liste");
myDataTable = (DataTable)this.myDataGridView.DataSource;}
Das war so der einzige Ansatz, den ich bis jetzt gefunden habe, der aber auch nicht funktioniert.
Wäre echt für jede Antwort dankbar. Denke bestimmt in die falsche Richtung...
Hallo,
dein Problem liegt darin, dass du das DataGridView missbrauchst. Es ist nicht dazu da, Daten festzuhalten und zu verarbeiten, sondern es dient (wie der Name schon sagt) dazu, dass Daten in einem Grid zur Anzeige gebracht werden. Die Daten gehören also in eine Daten-Klasse (sehr oft eine DataTable), über die DataSource oder eine dazwischengeschaltete BindingSource landen Änderungen zur Laufzeit im DGV automatisch in der DataTable. Allenfalls ist vor einem Update-Befehl noch EndEdit aufzurufen.
Du musst also dein Vorgehen grundsätzlich umdrehen; alles andere führt immer wieder zu neuen Problemen.
Gruß Jürgen
Und was empfiehlt sich für eine 10x10 Tabelle, die ich per Hand befüllen möchte und dann später in einem DataTable weiterverarbeiten möchte?
Mir würden jetzt nur 100 Textboxen einfallen, aber das kann ich mir kaum vorstellen, dass es so aufwendig ist...
Wie schon gesagt wurde, DGV an eine Datenquelle binden; dann klappt sogar die Sortierung usw.
S.
Also, was ich eigentlich bräuchte wäre so etwas wie eine Excel Eingabe Maske.
Eine Tabelle, in der ich Spalten und Zellen formatieren (Datum,Zeit,Bool,String,Double) kann. Deren Felder ich in abhängig untereinandern und von z.B. einer ComboBox in derselben Maske setzen kann. Und die ich dann auslesen kann.
Habe jetzt schon etwas rumgegoogelt, aber bis auf Textboxen keine Lösung gefunden, die meinen Anforderungen entspricht.
Ist es denn wirklich so schwer zu verstehen was dir die beide sagen wollen?
Erstelle eine DataTable mit den Spalten, und setze das DGV.DataSource auf diese DataTable.
Jetzt musst du gar nichts mir von/zu DataTable übertragen.