Beitrag "Re: N:M Relation für Einsteiger"
Re: N:M Relation für Einsteiger
23.08.2006 21:31
Freier, Daniel
Antworten
Hallo Dirk,
von deinen Angaben würde ich sagen, obwohl ich kein DB-Experte bin , dass du
auf dem richtigen Weg bist.
Vielleicht kannst du dich mit GetChildRows immer von einer Tabelle zur
untergeordneten Tabelle bewegen.
Dazu ist es allerdings erforderlich, dass eine DataRelation definiert wird.
Ob dies aber über mehrere Tabellen geht, also Kunden =>GetChildRows von
KundenProdukte, KundenProdukte => GetChildRows von Produkte
Vielleicht helfen dir diese Überlegungen weiter.
Daniel
"Dirk Weber" schrieb im Newsbeitrag
news:aec946ce-d36a-4951-a2f4-e10397afe12c@news.dotnetpro.de...
> Hallo, ich arbeite mich seit ein paar Wochen in .NET ein und muss jetzt
> mal ein paar Fragen zu ADO.NET loswerden.
> In meiner Anwendung habe ich eine M:N Beziehung, die ich klassich über
> zwei Mastertabellen und eine Join Tabelle gelöst habe. Als Beispiel soll
> hier das übliche herhalten.
>
> Kunde (ID, Name)
> 1:N
> KundenProdukte (IDKunde, IDProdukte)
> N:1
> Produkte (ID, Name)
>
>
> Diese Beziehung möchte ich in zwei Grids anzeigen
> Im Ersten Grid werden alle Kunden angezeigt, im 2. grid sollen die
> Produkte angezeigt werden, die dieser Kunde gekauft hat.
>
> Aus dem was ich bisher über ADO.NET gelesen habe, bin ich folgenden Weg
> gegangen: alle drei Tabellen werden per SELECT * FROM Kunde, SELECT * FROM
> KundenProdukte und SELECT * FROM Produkte über dataadapter in einen
> dataset geladen.
>
> Dann baue ich zwei datarelations auf, die die beiden 1:N Beziehungen
> abbilden:
> dsTest.Relations.Add("relKunde_KundenProdukte",
> dsTest.Tables["Kunde"].Columns["ID"],
> dsTest.Tables["KundenProdukte"].Columns["IDKunde"]);
> und
> dsTest.Relations.Add("relProdukte_KundenProdukte",
> dsTest.Tables["Produkte"].Columns["ID"],
> dsTest.Tables["KundenProdukte"].Columns["IDProdukte"]);
>
> Nun möchte ich die Daten in den beiden Grids anzeigen und stelle das
> DataBinding her:
> KundeGrid.DataSource = dsTest.Tables["Kunde"];
>
> und ab hier weiß ich nicht weiter, da ich es nicht schaffe, die abhängigen
> Rows aus der Produkte Tabelle in dem 2. Grid anzuzeigen, so dass diese
> auch automatisch aktualisiert werden, wenn ich einen anderen Kunden
> auswähle.
>
> Kann eine solche Beziehung überhaupt über Relations alleine bewältigt
> werden? Brauche ich andere Konstrukte wie GetChildRows etc.
>
> Kann mir jemand auf die Sprünge helfen?
>
> Dirk
>
Ganzer Thread
| Thema | Autor | Datum |
|
|
Dirk Weber
| 30.05.2006 12:18 |
|
»
|
Freier, Daniel
| 23.08.2006 21:31 |