Aktualisieren einer Datenbank aus DGV Mithilfe vom CommandBuilder
Guten Tag,
ich erstelle eine Anwendung in vb.net (4.5) die eine online Datenbank (MySQL) in ein DGV überträgt, die Änderungen sollen nach dem Ändern Mithilfe des CommandBuilders automatisch vorgenommen werden.
Das funktioniert soweit gut, solange ich die Zeilen im DGV mit einem Mausklick verlasse.
Sobald ich die aktuell beschriebene Zelle mit der Tastatur verlasse (Enter, Tab, Pfeiltasten ...), werden die Änderungen im DGV gemacht, die Aktion " dgv_Aktualisieren" wird auch aufgerufen, allerdings wird der Update der Datenbank über MySQLAdapter.Update nicht ausgeführt (keine Fehlermeldung oder ähnliches). Dabei ist es egal, ob ich nur die Celle oder die gesamte Row wechsel, es wird kein Update der Datenbank durchgeführt.
Ich hatte vor einigen Tagen bereits über Suchmaschinen erfahren, dass andere das Selbe Problem aber keine Lösung dafür hatten.
Auch das Ausführen der Funktion über einen Button, was den Fokuswechsel der Maus zum Button zur Folge haben sollte, und somit dem Wechseln durch Mausklick in ein anderes Feld des DGV gleichkommen sollte, funktioniert leider nicht.
Sollte der Programmcode so nicht ausreichen, reiche ich gerne weiteren nach um das Problem notfalls nachstellen zu können.
Ich hoffe, ihr könnt mir helfen das Problem zu finden
Update: Mit dem Aufruf des Updates über einen Button funktioniert es, allerdings kann das ja nicht die Lösung sein, dass nach jeder Änderung ein Button gedrückt werden muss
ich erstelle eine Anwendung in vb.net (4.5) die eine online Datenbank (MySQL) in ein DGV überträgt, die Änderungen sollen nach dem Ändern Mithilfe des CommandBuilders automatisch vorgenommen werden.
...
Public_tbl_Downloads_MySQLAdapter = New MySqlDataAdapter(TV_SQLString, Public_SQLConnectString)
Dim commandBuilder As New MySqlCommandBuilder(Public_tbl_Downloads_MySQLAdapter)
Public_tbl_Downloads_BindingSource.DataSource = Public_tbl_Downloads_DataTable
...
Private Sub dgv_Aktualisieren(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_Downloads.CellEndEdit
...
Public_tbl_Downloads_MySQLAdapter.Update(CType(Public_tbl_Downloads_BindingSource.DataSource, DataTable))
...
End Sub
Das funktioniert soweit gut, solange ich die Zeilen im DGV mit einem Mausklick verlasse.
Sobald ich die aktuell beschriebene Zelle mit der Tastatur verlasse (Enter, Tab, Pfeiltasten ...), werden die Änderungen im DGV gemacht, die Aktion " dgv_Aktualisieren" wird auch aufgerufen, allerdings wird der Update der Datenbank über MySQLAdapter.Update nicht ausgeführt (keine Fehlermeldung oder ähnliches). Dabei ist es egal, ob ich nur die Celle oder die gesamte Row wechsel, es wird kein Update der Datenbank durchgeführt.
Ich hatte vor einigen Tagen bereits über Suchmaschinen erfahren, dass andere das Selbe Problem aber keine Lösung dafür hatten.
Auch das Ausführen der Funktion über einen Button, was den Fokuswechsel der Maus zum Button zur Folge haben sollte, und somit dem Wechseln durch Mausklick in ein anderes Feld des DGV gleichkommen sollte, funktioniert leider nicht.
Sollte der Programmcode so nicht ausreichen, reiche ich gerne weiteren nach um das Problem notfalls nachstellen zu können.
Ich hoffe, ihr könnt mir helfen das Problem zu finden
Update: Mit dem Aufruf des Updates über einen Button funktioniert es, allerdings kann das ja nicht die Lösung sein, dass nach jeder Änderung ein Button gedrückt werden muss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 226742
Url: https://administrator.de/contentid/226742
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
1 Kommentar
Hi ForgottenRealm,
eventuell ist der Inhalt des DataGridView zum Zeitpunkt des "CellEndEdit"-Ereignisses noch nicht aktualisiert worden. Versuch mal deinen Code an das CellValueChanged-Event zu binden.
Grüße Uwe
eventuell ist der Inhalt des DataGridView zum Zeitpunkt des "CellEndEdit"-Ereignisses noch nicht aktualisiert worden. Versuch mal deinen Code an das CellValueChanged-Event zu binden.
Grüße Uwe