DGV zwei Tabellen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DGV zwei Tabellen

    Hallo zusammen,

    ich habe folgendes Szenario, das ich einfach nicht gelöst bekomme:

    Ich habe eine Tabelle "Lager". Hier stehen meine verschienenen Läger drin.

    ID | Lagerbezeichnung
    1 | Lager A
    2 | Lager B
    3 | Lager C

    Dann habe ich eine zweite Tabelle "Artikel", in der stehen meine Artikel drin, die in den jeweiligen Lägern sind.

    ID | Artikel | Lager | Lagermenge
    1 | Äpfel | 1 | 10
    2 | Äpfel | 2 | 5
    3 | Birnen | 1 | 4
    4 | Birnen | 3 | 8
    5 | Bananen | 2 | 15
    6 | Bananen | 3 | 12

    Ist ist so, dass nicht jeder Artikel auch in jedem Lager verfügbar ist.

    Nun will ich in einem Formular (Deteildatensatz für den jeweiligen Artikel) mittels DataGridView anzeigen, in welchem Lager was liegt. Dabei sollen aber alle Läger angezeigt werden, auch wenn dort kein Artikel liegt.

    DGV beim Artikel "Äpfel":
    Lagerbezeichnung | Lagermenge
    Lager A | 10
    Lager B | 5
    Lager C | 0 (oder leer)

    DGV beim Artikel "Birnen":
    Lagerbezeichnung | Lagermenge
    Lager A | 4
    Lager B | 0 (oder leer)
    Lager C | 8

    Dann soll es auch möglich sein, direkt im DGV Bestände manuell zu ändern und die dann (per TableAdapter.Update) zu speichern.

    D.h. wenn ich bei den Äpfeln (die ja nicht in Lager C sind, und somit auch noch kein DS in der Tabelle "Artikel" für Lager C vorhanden ist) einen Bestand eintrage, muss in der Tabelle "Artikel" der DS "Apfel, Lager C, Lagermenge" eingetragen werden.

    Ich hoffe ich habe das verständlich dargestellt und ihr könnt mir hier helfen.

    Ich bin um jede Hilfe dankbar.

    Grüße
    Dieter
    @derdieter
    Ich würd' ein bischen am Datenmodell arbeiten, dann wird's VIEL einfacher.
    Schau mal in das Tutorial vom @ErfinderDesRades Die Vier Views, damit ist Deine Fragestellung beantwortet.
    oder noch genauer: Es liegt ein Datenmodellfehler vor, wenns da nur 2 Tabellen gibt.
    Es muss 3 Tabellen geben: 1) Lager, 2) Artikel, 3) LagerArtikel - eine Zuordnungstabelle.

    Wenn das Datenmodell in dieser Weise richtig aufgebaut ist, dann kann man einen m:m-View basteln, der die gewünschte Anforderung bedient.
    Siehe dazu auch codeproject.com/articles/1030969/relational-datamodel