Verknüpfte Tabellen in Datagridview anzeigen und filtern

  • VB.NET

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

    Verknüpfte Tabellen in Datagridview anzeigen und filtern

    Hallo zusammen,

    ich habe ein Dataset mit mehreren verknüpften Tabellen. Jetzt habe ich aus den Daten ein datengebundenes Datagridview erstellt. In diesem Datagridview zeige ich noch mehrere Spalten aus einer andern Tabelle an, die über eine Datagridviewcell-Combobox über die Relation verknüpft ist. Jetzt möchte ich dem Benutzer die Möglichkeit geben nicht nur in der datengebundener Datagridview-Tabelle zu filtern, sondern auch über die zugehörigen Felder der Comboboxen.

    Filter von datengebundener Datagridview-Tabelle kein Problem, das mache ich über die Bindingsource. Wenn ich jetzt zusätzlich die Comboboxspalten filtern möchte haben die ja eine andere Bindingsource, die keinerlei Auswirkung auf die Haupttabellenspalten haben.

    Ich hoffe ich konnte mein Problem einigermaßen gut schildern!
    Gruß von der KSE

    ks-entwicklung.de
    schon, aber wird nicht so ohne weiteres funktionieren.

    Die Datasource einer comboColumn muß für alle Zellen der ComboSpalte gültig sein.

    also angenommen eine ProduktTabelle, und die produkt-Kategorie ist als Combo ausgeführt. Wenn da nun in der Tabelle iwelche Produkte der Kategorie "Milchprodukte" angehören, du aber die Milchprodukte aus der Datasource der Combocolumn wegfilterst, kriegstn Fehler wegen ungültiger Kategorie-Werte.

    Was du machen kannst ist, der einzelnen Combo eine annere DataSource unterschieben in dem Moment, wo sie ihr Dropdown öffnet. gugge Combo-Auswahl einschränken
    also ich stelle mir jetzt vor, du hättest Artikel, und wollest die nach einer Kategorie filtern.

    naja, da braucht man eiglich keine zusätzliche DataTable und Extra-DB-Abfrage für.

    Da könnteman dem User eine Combo mit den Kategorien anbieten, und wenner eine auswählt, dann

    VB.NET-Quellcode

    1. ArtikelBindingSource.Filter = "KategorieID = " & cmbKat.SelectedValue


    Wenn deine Filter-Logik komplizierter ist, könnteste der ArtikelTable auch eine berechnete Spalte spendieren, und darauf filtern.