Hallo und Frohes Neues zusammen,
habe mal wieder ein Problemchen wo ich derzeit nicht ganz weiter komme.
Und zwar habe ich ein Programm geschrieben welches auf mehreren Clients läuft mittels Anmeldung.
Nun habe ich das Problem, wenn Person A etwas innerhalb einer Datengebundenen DataGridView ändert oder neu hinzufügt aktualisiert sich die Tablle bei Person B auf dem anderen Client nicht.
Zur Sicherheit habe ich eine Notification eingebaut worüber alle Clients allerdings den Hinweis erhalten das ein neuer Datenbankeintrag getätigt wurde, was auch klappt.
Nun hat Person A quasi einen Eintrag mit der ID 212 neu hinzugefügt und gespeichert, dieser ist auch in der Datenbank bereits vorhanden.
Person B sieht allerdings nur die letzte ID 211 und hat die Notification erhalten das ein neuer Eintrag vorhanden ist.
Ja, er könnte es nun manuell Akualisieren, das funktioniert ebenfalls ohne Probleme.
Auch über einen Ticker würde es hierbei funktionieren, was ich schon getestet habe.
Ich hätte es allerdings gerne das nach der Notification ein Event ausgelöst wird, welches die Daten bei Person B einfach aktualisiert, statt einen Ticker zu aktivieren.
Nun habe ich quasi nach dem Erhalt der Notification eine Public Sub aufgerufen, welches normalerweise dann die Daten neu laden soll, und obwohl es manuell bei dem Client funktioniert, funktioniert es aber nicht nach der Notification, obwohl alle Befehle durchlaufen werden, bleibt die Tabelle auf dem alten Stand und wird nicht neu geladen.
Bei Ankunft der Notification auf dem Client wird quasi folgendes aufgerufen:
1. Versuch: Hierbei hatte ich versucht die betreffende Form neu zu Laden, leider ohne Erfolg
2. Versuch: Hierbei habe ich auf die Methode in der betreffenden Form zugegriffen und versucht dort dann die untenstehenden Befehle abzuarbeiten, auch dies lief zwar durch, hat aber nicht zu dem Ergebnis geführt das die Daten neu geladen wurden.
Bitte nicht wundern, ich hatte hierbei verschiedene Varianten getestet, aber es erbrachte nicht den Erfolg. Die MsgBox wurde zuletzt auch durchlaufen.
Ich stehe derzeit etwas ratlos da.
Habe ich einen falschen denkansatz oder liegt es hierbei am falschen Code
Danke
Gruss Spike
habe mal wieder ein Problemchen wo ich derzeit nicht ganz weiter komme.
Und zwar habe ich ein Programm geschrieben welches auf mehreren Clients läuft mittels Anmeldung.
Nun habe ich das Problem, wenn Person A etwas innerhalb einer Datengebundenen DataGridView ändert oder neu hinzufügt aktualisiert sich die Tablle bei Person B auf dem anderen Client nicht.
Zur Sicherheit habe ich eine Notification eingebaut worüber alle Clients allerdings den Hinweis erhalten das ein neuer Datenbankeintrag getätigt wurde, was auch klappt.
Nun hat Person A quasi einen Eintrag mit der ID 212 neu hinzugefügt und gespeichert, dieser ist auch in der Datenbank bereits vorhanden.
Person B sieht allerdings nur die letzte ID 211 und hat die Notification erhalten das ein neuer Eintrag vorhanden ist.
Ja, er könnte es nun manuell Akualisieren, das funktioniert ebenfalls ohne Probleme.
Auch über einen Ticker würde es hierbei funktionieren, was ich schon getestet habe.
Ich hätte es allerdings gerne das nach der Notification ein Event ausgelöst wird, welches die Daten bei Person B einfach aktualisiert, statt einen Ticker zu aktivieren.
Nun habe ich quasi nach dem Erhalt der Notification eine Public Sub aufgerufen, welches normalerweise dann die Daten neu laden soll, und obwohl es manuell bei dem Client funktioniert, funktioniert es aber nicht nach der Notification, obwohl alle Befehle durchlaufen werden, bleibt die Tabelle auf dem alten Stand und wird nicht neu geladen.
Bei Ankunft der Notification auf dem Client wird quasi folgendes aufgerufen:
1. Versuch: Hierbei hatte ich versucht die betreffende Form neu zu Laden, leider ohne Erfolg
2. Versuch: Hierbei habe ich auf die Methode in der betreffenden Form zugegriffen und versucht dort dann die untenstehenden Befehle abzuarbeiten, auch dies lief zwar durch, hat aber nicht zu dem Ergebnis geführt das die Daten neu geladen wurden.
VB.NET-Quellcode
- Public Sub Firmendaten_aktualisieren()
- System.Threading.Thread.Sleep(5000)
- Me.Verwaltung_firmendatenDataGridView.DataSource = Nothing
- Me.Verwaltung_firmendatenTableAdapter.Fill(Me.Finanz_managerDataSet.verwaltung_firmendaten)
- Me.Verwaltung_firmendatenDataGridView.DataSource = VerwaltungfirmendatenBindingSource
- Me.Verwaltung_firmendatenDataGridView.Refresh()
- Me.Verwaltung_firmendatenDataGridView.ClearSelection()
- Me.VerwaltungfirmendatenBindingSource.MoveLast()
- MsgBox("Es wurde alles durchgegangen")
- End Sub
Bitte nicht wundern, ich hatte hierbei verschiedene Varianten getestet, aber es erbrachte nicht den Erfolg. Die MsgBox wurde zuletzt auch durchlaufen.
Ich stehe derzeit etwas ratlos da.
Habe ich einen falschen denkansatz oder liegt es hierbei am falschen Code
Danke
Gruss Spike