Daten vergleichen und aktualisiere

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ptbberlin.

    Daten vergleichen und aktualisiere

    Hi, ich schon wieder

    Irgendwie habe ich das berühmte Brett vorm Kopf.
    Ich vergleiche ein per Databinding.filter gefülltes Datagridviw mit Einträgen einer Listbox. Im Ergebnis soll das (typisierte) dataset aktualisiert werden. Suchen, vergleichen und hinzufügen OK. Aber, ich bekomme es nicht hin, einen in der Listbox nicht vorhandenen Eintrag aus dem Datagridviw bzw. Dem Dataset zu entfernen. Ist bestimmt ganz einfach, aber wie gesagt, Brett vorm Kopf

    Ptbberlin
    Relativ simpler Aufbau: Ein Datagridviw und eine Listbox. Datenmodell: Objekte (Präparate/Exponate) und Schlagworte die über eine nm- Verknüpfung verbunden sind.
    Das DG wird per bindingsource.find mit den zum jeweiligen Objekt gehörigen Schlagwörtern (nm-Tabelle) gefüllt.
    Die Listbox wird zur Laufzeit aus anderer Quelle mit aktualisierten Stichworten für das Objekt (Präparat/Exponat) gefüllt und mit dem DG verglichen. Je nach Ergebnis bleiben die Einträge des DG unverändert, werden erweitert oder entfernt.
    Bei letzterem, also das entfernen (löschen) eines Datensatzes, also einer Verknüpfung von Objekt mit Schlagwort, komme ich nicht weiter.
    Ich hoffe das ist so verständlich.

    Ptbberlin

    ptbberlin schrieb:

    Das DG wird per bindingsource.find mit den zum jeweiligen Objekt gehörigen Schlagwörtern (nm-Tabelle) gefüllt.
    Da ist schon was faul.
    Das DG sollte gebunden werden, nicht befüllt.
    Guggemol vier Views-Videos, das Video, wie man einen m:n - View bastelt.

    Und zum Datenmodell: kannst du vlt. ein Screenshot von deim typDataset einstellen - erst dann weiß man wirklich, woran man ist.

    BildDatei anhängen:
    VB1963: Objekt/Präparat muss kein Schlagwort (Stichwort) haben (siehe Datenmodell)
    ErfinderDesRades: Ich tue mich mit der Terminologie noch etwas schwer. Gemeint war natürlich, dass das DG gebunden und nicht befüllt wird (was im Ergebnis aber auf das Gleiche herauskommt)

    Hier ein Auszug aus meinem Datenmodell:


    Die aktuellen Schlagworte zum ausgewählten Objekt/Präparat werden im gebundenen DG dargestellt.
    Es geht einfach darum, die tbLink zu aktualisieren, d.h. Datensätze einfügen und entfernen.
    Ohne Typisierung wäre das alles für mich problemlos über sql-insert/-delete zu machen. Da keine referentielle Integrität gefordert ist, kann der jeweilige tbLink-Datensatz kann ohne weitere Abhängigkeiten gelöscht werden.
    Aber wie zum Teufel, entferne ich einen Datensatz aus dem DG, dessen Datasource und letztendlich aus meiner tbLink X(
    ErfinderDesRades: Die Videos habe ich mir (vor längerer Zeit) schon angesehen, werde sie mir aber noch einmal vornehmen. Wie gesagt, es geht mir nicht um das Datenmodell - auch m:n-Verknüpfung ist für mich kein Neuland.
    So, ich hoffe ich habe mich jetzt verständlich ausgedrückt. :)
    Ptbberlin

    ptbberlin schrieb:

    Aber wie zum Teufel, entferne ich einen Datensatz aus dem DG, dessen Datasource und letztendlich aus meiner tbLink
    indem du ein ordentliches Datenmodel erstellst, wo die Tabellen und Relationen zueinander und die Bindungen zu den DGV's passen ...
    Ich habe dir eine kleine Solution angehängt - da wird gezeigt, wie die Zuteilung der Schlagwörter funktioniert... (hoffe nur, es ist das was du suchst?)
    Da gibt es 3 Tabellen die zueinander in einer mn-Relation stehen.
    Die Hauptabelle ist die Mastertable, da kannst du irgendwelche Argumente angeben.
    Die zugehörenden Schlagwörterkannst du in der 2. Tabelle angeben.
    In der 3. Tabelle definierst du irgendwelche Schlagwortworte.
    Das ist alles mit dem Designer formuliert worden - da findest du keinen Usercode!
    Schaue das Datenmodell und DGV mit der Datenbindung dir einmal genau an...
    Dateien
    • Schlagworte00.zip

      (20,59 kB, 71 mal heruntergeladen, zuletzt: )