DataGridView / BindingSource / InvalidOperationException

13/01/2009 - 20:58 von Oliver Denter | Report spam
Hallo,

ich habe eine Klasse Waehrungen, welche eine Property vom Typ DataTable hat.
Auf der Klasse gibt es eine Methode "Load", welche aus einer Tabelle
alle Zeilen làdt und die Property entsprechend füllt.
Die DataTable wird in eine BindingSource gesteckt und diese in mein
DataGridview.

this.bindingSourceValue.DataSource = w.DataTableData;
this.dataGridViewValue.DataSource = this.bindingSourceValue;

Im OnRowValidated Event des Grid's wird, wenn der User vorher eine
Spalte eingefügt hat eine neue Instanz der Klasse erstellt, befüllt und
über eine Methode Insert werden die Daten in die DB geschrieben.
Anschliessen wird auf der Instanz eine Methode "Reload" gerufen und es
werden wieder alle Zeilen eingelesen und die Property DataTableData befüllt.

Nun will ich die DataTable erneut in die BindingSource stecken und eben
die neuen, aktualisierten Daten im Grid anzeigen.

Das liefert mir jedoch eine InvalidOperationException, mit dem Hinweis
das ich dies aus diesem EventHandler nicht machen darf.

Wie kann ich nach dem Insert das Grid updaten, also die neuen Daten
anzeigen?

Die Tabelle hat 6 Felder von denen 4 befüllt werden, 2 werden beim
Insert gesetzt (ID und Timestamp).

OD
 

Lesen sie die antworten

#1 Oliver Denter
13/01/2009 - 21:23 | Warnen spam
Oliver Denter schrieb:
Hallo,

ich habe eine Klasse Waehrungen, welche eine Property vom Typ DataTable
hat.
Auf der Klasse gibt es eine Methode "Load", welche aus einer Tabelle
alle Zeilen làdt und die Property entsprechend füllt.
Die DataTable wird in eine BindingSource gesteckt und diese in mein
DataGridview.

this.bindingSourceValue.DataSource = w.DataTableData;
this.dataGridViewValue.DataSource = this.bindingSourceValue;

Im OnRowValidated Event des Grid's wird, wenn der User vorher eine
Spalte eingefügt hat eine neue Instanz der Klasse erstellt, befüllt und
über eine Methode Insert werden die Daten in die DB geschrieben.
Anschliessen wird auf der Instanz eine Methode "Reload" gerufen und es
werden wieder alle Zeilen eingelesen und die Property DataTableData
befüllt.

Nun will ich die DataTable erneut in die BindingSource stecken und eben
die neuen, aktualisierten Daten im Grid anzeigen.

Das liefert mir jedoch eine InvalidOperationException, mit dem Hinweis
das ich dies aus diesem EventHandler nicht machen darf.

Wie kann ich nach dem Insert das Grid updaten, also die neuen Daten
anzeigen?

Die Tabelle hat 6 Felder von denen 4 befüllt werden, 2 werden beim
Insert gesetzt (ID und Timestamp).

OD


Ich habe es jetzt erstmal über nen zusàtzlichen Knopf "Aktualisieren"
umgangen, das ganze finde ich jedoch nicht gerade optimal.

OD

Ähnliche fragen