Announcement

Collapse
No announcement yet.

DataSet nur mit Datenbankänderungen aktualisieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataSet nur mit Datenbankänderungen aktualisieren

    Guten Tag,

    ich möchte eine Tabelle aus meinem typisierten DataSet zum Programmstart einmal laden und danach nur noch die Änderungen aus der Datenbank ziehen um mein DataSet entsprechend zu aktualisieren.

    Der Tabelle in meiner Datenbank habe ich eine Timestampspalte hinzugefügt. Für entfernte Tupel habe ich eine Tombstone Tabelle angelegt. Nun frage ich jede Minute die Datenbank ab ob sich der Maximale Timestamp und/oder die Anzahl der Tupel in der Tabelle verändert hat. Wenn dies der Fall ist ziehe ich mir nur die Tupel, die neu hinzugekommen sind oder verändert wurden. Das gleiche gilt für die entfernten Tupel, die ich aus der Tombstone Tabelle ziehe.
    Die entsprechenden Tupel würde ich dann in einer DataTable erhalten. Könnte ich diese dann einfach per DataSet.DataTable.Merge() integrieren?

    Der Code hierfür ist noch nicht geschrieben, weil ich mich vorher vergewissern möchte, ob dies eine übliche Technik ist oder es schon etwas vorgefertigtes bzw. ein Tutorial/Pattern gibt das ich nur noch nicht gefunden habe.

    Gruß
    Wurzel

  • #2
    Hallo,

    guck mal: Synchronisieren von Daten - Entwickler-Forum


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Keine Relationen im DataSet

      Das sieht schon mal sehr gut aus - Danke! - aber ich habe nun noch ein paar Fragen.

      Mit dem erzeugten SyncAgent kann ich meinen lokalen Datenbestand über die Synchronize() Methode aktualisieren. Dann ziehe ich mir über die TableAdapter des neu erzeugten DataSets die Tabellen der lokalen Datenbank und lasse sie mir anzeigen.

      1.) Ich habe versucht ein Insert über das lokale DataSet abzuwickeln aber die eingefügte Zeile wurde nicht an den SQL Server weitergegeben. Leider fehlen dem lokal erzeugten DataSet auch sämtliche Relationen. Ist es möglich das die Relationen auch automatisch erzeugt werden? Oder brauche ich zwei DataSets? Eines zum Betrachten der Daten und eines zum Bearbeiten?

      Edit: Mit SyncAgent.MyTable.SyncDirection = SyncDirection.Bidirectional;
      funktioniert die Synchronisation in beide Richtungen.

      2.) Wenn eine bestimmte Tabelle von den Aktualisierungen betroffen ist, soll in meinem Programm etwas passieren. Gibt es eine Möglichkeit die Anzahl der Veränderungen pro Tabelle zu erhalten?

      Gruß
      Wurzel
      Zuletzt editiert von Wurzel; 23.08.2011, 15:05.

      Comment

      Working...
      X