Wen refreshen nach Datenänderung?

02/10/2008 - 15:26 von Georg Weisse | Report spam
Hallo zusammen,

Ich arbeite (mich immer noch ein) in VB 2008.

Die zu verwendenden Daten stehen in einer Access-Datenbank (.mdb).

Ich verwende eine zentrale OleDbConnection.

Ich habe mehrere Formulare, in denen ich Daten erfasse/bearbeite.

Jedes dieser Formulare hat einen eigenen OleDbDataAdapter und DataSet.
Mit der BindingSource ist jeweils ein DataGridView angebunden, welches ich
zur Selektion des Datensatzes verwende.

Die Dateneingabe mache ich nicht im DataGridView sondern in separaten
Text-, Combo- und Checkboxen.
Die Eingabefelder sind nicht an den Datensatz gebunden sondern werden aus
der BindingSource 'manuell' gefüllt.
Die Eingabefelder sind ReadOnly und werden nur wàhrend der Dateneingabe
aktiviert, so dass ich am Ende der Dateneingabe zuerst die Sinnhaftigkeit
der Eingaben prüfen kann, bevor ich sie in die Datenbank speichere.

Die meisten Formulare bearbeiten nur jeweils eine Tabelle (mit Stammdaten)
der Datenbank.
Das Haupt-Bearbeitungs-Formular bindet einen Teil der Stammdaten mit Inner-
bzw. Left-Join ein.

Wie verfahre ich nun am Besten, wenn ich Stammdaten geàndert habe?
Nach dem Update-Befehl stehen sie ja in der Datenbank, aber mein Haupt-
Bearbeitungs-Formular enthàlt ja noch die Daten von der Erstellung.
Wen oder was muss ich hier 'refreshen', um die geànderten Daten übernehmen
zu können?

Danke schon einmal fürs Lesen,
schönen Tag noch,
Georg
 

Lesen sie die antworten

#1 Peter Fleischer
02/10/2008 - 18:13 | Warnen spam
"Georg Weisse" schrieb im Newsbeitrag
news:

Ich verwende eine zentrale OleDbConnection.



Hallo Georg,
was bedeutet bei dir "zentral"? Musst du da jedes Mal in die Datenbasis des
BND :-) ?

Ich habe mehrere Formulare, in denen ich Daten erfasse/bearbeite.

Jedes dieser Formulare hat einen eigenen OleDbDataAdapter und DataSet.



Warum? Wenn du eine zentrale Datenverwaltung hast (s. oben), warum legst du
dann immer wieder neie Datenpuffer an?

Mit der BindingSource ist jeweils ein DataGridView angebunden, welches ich
zur Selektion des Datensatzes verwende.



Die BindingSource selbst hàlt keine Daten. Sie verwaltet nur eine Sichet und
den Verweis auf einen BindingManager. Der Datenpuffer kann "zentral"
liegen.

Die Dateneingabe mache ich nicht im DataGridView sondern in separaten
Text-, Combo- und Checkboxen.
Die Eingabefelder sind nicht an den Datensatz gebunden sondern werden aus
der BindingSource 'manuell' gefüllt.
Die Eingabefelder sind ReadOnly und werden nur wàhrend der Dateneingabe
aktiviert, so dass ich am Ende der Dateneingabe zuerst die Sinnhaftigkeit
der Eingaben prüfen kann, bevor ich sie in die Datenbank speichere.



Warum so umstàndlich? Es ist natürlich sehr übersichtlich, das alles elbst
zu machen. In ADO.Net kannst du aber auch einen im Client geànderten
Datensatz prüfen, mit Fehlerstatus belegen, verwerfen usw.

Die meisten Formulare bearbeiten nur jeweils eine Tabelle (mit Stammdaten)
der Datenbank.
Das Haupt-Bearbeitungs-Formular bindet einen Teil der Stammdaten mit
Inner-
bzw. Left-Join ein.

Wie verfahre ich nun am Besten, wenn ich Stammdaten geàndert habe?
Nach dem Update-Befehl stehen sie ja in der Datenbank, aber mein Haupt-
Bearbeitungs-Formular enthàlt ja noch die Daten von der Erstellung.



Vermutlich nutzen sie unterschiedliche Datenpuffer mit unterschiedlichen
Änderungsstànden. So etwas ist recht schwer zu beherrschen und in einer
Anwednung überhaupt nicht notwendig, es sei man wird für eine möglichst
intensive Belegung der Ressourcen bezahlt :-).

Wen oder was muss ich hier 'refreshen', um die geànderten Daten übernehmen
zu können?



Überhaupt nicht, wenn du mit einem "zentralen" Datenpuffer und gebundenen
Steuerelementen arbeitest.

Viele Gruesse

Peter

Ähnliche fragen