mehrere DataSets in einDGV

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Nils_Kr.

    mehrere DataSets in einDGV

    Hi,

    ich habe folgende Datenstruktur:


    TargetValue ist Category untergeordnet und der entsprechende Fremdschlüssel ist ID_Cat. Jetzt möchte ich auf eine Ansicht aus alle Namen aus Category anzeigen lassen und dazu alle TargetVal mit dem passenden Fremdschlüssel.
    Im Prinzip so:


    In jede Zeile kommt eine Entität von Category. In der ersten Spalte steht dann Category-Name und in den folgenden alle TargetValue-TargetVal mit passendem Fremdschlüssel. Bekomme ich das irgendwie mit dem Designer hin? Wobei
    man beachten muss, dass die Anzahl der Spalten beliebig ist. Das alles per Hand zu machen ist zwar möglich, aber auch mühselig.

    Zweitens habe ich bemerkt, dass die Performance mit steigender Spaltenzahl rapide abnimmt. Bei 50 Spalten hab ich locker eine Sekunde Verzögerung wenn ich mehrere Zellen auswähle. Ist ein DGV überhaupt das richtige Tool für meinen Plan?
    Option strict = on

    If it's stupid and it works it ain't stupid.

    VB1963 schrieb:

    Das sieht mir nach einer Kreuztabelle aus und dafür ist das DGV nicht besonders geeignet.


    Kreuztabelle passt ziemlich gut. Die Anzahl der Spalten ist eigentlich immer 52, allerdings ändern sich die Spaltentitel und damit die Werte der Spalte.

    E: Wenn ein DGV dafür ungeeignet ist, hat jemand eine bessere Idee?
    Option strict = on

    If it's stupid and it works it ain't stupid.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nils_Kr“ ()

    Afaik gibts da kein Control zu, und ist auch eher ein Problem der Datenaufbereitung als eines Controls.

    Wäre eine spannende aufgabe, mit benutzredefinierten PropertyDescriptoren was zu basteln, weil glaub anhand von PropertyDescriptoren kann ein DGV seine Spalten generieren.
    Aber geht nur, wenn das Datenmodell dafür in geeigneter Weise ausgelegt ist.
    Es muss eine 1:n - Relation bestehen, und eine Kreuztabelle kann nur eine Spalte der übergeordneten Tablle in Spaltennamen umwandeln, und kann nur eine Spalte der untergeordneten Tabelle dann diesen Spalten zuordnen.

    Verstehst du, was ich meine?
    1:n ist mir bekannt. Passt jedoch glaube ich nicht ganz, weil ich zeilenweise und nicht spaltenweise arbeiten muss. Ich bin jetzt gerade dabei eine Funktion zu bauen.

    Im DataSet werden die Daten sortiert und in einer List Of TargetVal an das DGV übergeben. In die andere Richtung ähnlich. Muss man halt sehr gründlich sein, dass nichts durcheinander kommt.
    Option strict = on

    If it's stupid and it works it ain't stupid.