Announcement

Collapse
No announcement yet.

master/Detail im Dataset (Fill)

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

  • master/Detail im Dataset (Fill)

    Hallo z'samm,

    ich habe ein Problem mit einem Dataset in welchem ich diverse Tabellen mit Releationen versehen habe.

    Funktionierte bisher tadellos - nur jetzt kam auf der DB eine neue Größe für der Mastertabelle hinzu und schon kriegt mein TableAdapter beim FILL eine exception dass unique/nonnull -einschränkungen verltzt werden.

    Bsp:
    Master.ProjektID = 4711
    Master.Mitarbeiter = xy
    Detail.Mitarbeiter = xy

    NEU: Projekt 4712 mit den dazugehörigen Sätzen in der MitarbeiterTab

    TableAdapter.fill(Projekt) (select * from Projekt where ProjektID = 4711)
    TableAdapter.fill(Mitarbeiter) (Select * from Mitarbeiter)

    Durch die Releation im Dataset (xy) dürfte doch im Detail nur das angezeigt werden, was zum Master passt.
    Bei mir zeigts hier alle Sätze aus der MitarbeiterTabelle an, die auf der DB vorhanden sind.

    Muss also für den Detail der select um die ProjektID erweitert werden indem jeweils mit der Mastertabelle gejoint wird???

  • #2
    Hallo,

    Bei mir zeigts hier alle Sätze aus der MitarbeiterTabelle an, die auf der DB vorhanden sind.
    Für die Darstellung in der Benutzeroberfläche ist es entscheidend, ob bei der Datenbindung der Name der DataTable oder der Name der DataRelation verwendet wird. Nur beim Zugriff auf die DataRelation ist die automatische Master-Detail-Synchronisierung aktiv. Wenn das Datenquellen-Fenster (Data Source) von Visual Studio 2005 oder Visual Studio 2008 verwendet wird, ist dort der Unterschied zwischen der DataTable und der DataRelation durch die Einrücktiefe gut visuell unterscheidbar. Wenn dann die eingerückt dargestellte DataRelation über Drag&Drop auf das Formular gezogen wird, konfiguriert Visual Studio die BindingSource-Komponenten automatisch "richtig".

    Muss also für den Detail der select um die ProjektID erweitert werden indem jeweils mit der Mastertabelle gejoint wird
    Nein. Wenn die Datenbanktabellen über den Primär- und Fremdschlüssel miteinander verbunden sind, blelibt die SELECT-Anweisung für beide TableAdapter völlig unabhängig vom Inhalt der Tabellen gültig.

    Comment

    Working...
    X