Laden...

DataGridView als Quelle für DataTable

Erstellt von icecream vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.649 Views
I
icecream Themenstarter:in
7 Beiträge seit 2009
vor 14 Jahren
DataGridView als Quelle für DataTable

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...

J
3.331 Beiträge seit 2006
vor 14 Jahren

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

I
icecream Themenstarter:in
7 Beiträge seit 2009
vor 14 Jahren

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...

60 Beiträge seit 2008
vor 14 Jahren

Wie schon gesagt wurde, DGV an eine Datenquelle binden; dann klappt sogar die Sortierung usw.

S.

I
icecream Themenstarter:in
7 Beiträge seit 2009
vor 14 Jahren

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.

F
10.010 Beiträge seit 2004
vor 14 Jahren

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.