Announcement

Collapse
No announcement yet.

1:n:m

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

  • 1:n:m

    Hallo,

    ich habe drei dataGridViews, die ich gerne 1:n:m verknüpfen möchte.
    Zwei bekomme ich ohne Probleme hin, also 1 zu 2 bzw. 2 zu 3 .
    Aber wie sage ich dgv2, wenn er Detail für dgv1 ist, dass er für dgv3
    der Master sein soll?

    dataGridView1.DataMember = "Master";
    dataGridView2.DataMember = "Master.Master2Detail";
    dataGridView3.DataMember = ?????

    Danke und Gruß

  • #2
    Hallo,

    der direkte Weg über die DataMember-Eigenschaft des DataGridView führt bei diesem Problem in eine Sackgasse. Statt dessen muss für jede Datenmenge (Tabelle) eine BindingSource-Komponente verbaut werden. Eine BindingSource-Komponente kann eine andere BindingSource-Komponente als Datenquelle nutzen, so dass hier beliebig viele Verschachtelungstiefen unterstützt werden. Die DataGridView's verwendet die jeweils zuständige BindingSource-Komponente als Datenquelle (DataMember).

    Comment


    • #3
      Originally posted by Andreas Kosch View Post

      ... Eine BindingSource-Komponente kann eine andere BindingSource-Komponente als Datenquelle nutzen, so dass hier beliebig viele Verschachtelungstiefen unterstützt werden. ...
      Hallo,

      habe es mit den BindingSource-Komponenten hinbekommen. Vielen Dank.
      Allerdings ist es ganz schön langsam, von einem zügigen Durchscrollen kann keine Rede sein. Ganz im Gegenteil, so kann man das nicht benutzen.
      Und dabei ist die Datenmenge gar nicht so groß. Die erste Tabelle ca 1500, zweite etwa 8000 und die Dritte enthält ungefähr 6000 Datensätze.
      Kann man das irgendwie beschleunigen?

      Danke und Gruß

      Comment


      • #4
        Hallo,

        Kann man das irgendwie beschleunigen?
        Ja - indem über die BindingSource-Eigenschaft Filter die zu verarbeitende Datenmenge begrenzt wird. Welchen Sinn macht es, wenn der Anwender in der 1. Tabelle 1500 Datensätze gleichzeitig durchsuchen kann?

        Comment

        Working...
        X