Hallo werte Kollegen
Ich möchte gerne mehrere DataTable mittels DataRelation miteinander verknüpfen.
Dies funktioniert auch einwandfrei.
Nun habe ich die Konstellation, dass zwei Tabellen mittels zwei Spalten als eindeutiger Schlüssel verknüpft werden müssen.
Kann mir hier wer von euch weiter helfen wie ich das bewerkstelligen kann? Ich kriegs einfach nicht auf die Reihe.
DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
// Stellt die Verbindung zwischen den Tabellen dt1 und dt2 über die ID her
DataRelation objRelation1 = new DataRelation("Relation1", ds.Tables["dt1"].Columns["id_PK"], ds.Tables["dt2"].Columns["id_FK"]);
ds.Relations.Add(objRelation1);
// Stellt die Verbindung zwischen den Tabellen dt2 und dt3 über die ID und Artikelnummer her
DataRelation objRelation2 = new DataRelation("Relation2", ds.Tables["dt2"].Columns["id_PK"], ds.Tables["dt3"].Columns["id_FK"]); // Wie wird hier die zweite Verknüpfung angegeben ???
ds.Relations.Add(objRelation2);
Beispiel in SQL
Select * from Table2
inner join Table3
on Table2.Id_PK = Table3.Id_PK_PK and Table2.Artikelnummer = Table3.Artikelnummer
Danke und Gruss Dolce
Wer Rechtschreibfehler findet, darf sie behalten.
In die Dokumentation hast du schon geschaut?
Der Konstruktor hat da ein paar overloads die helfen sollten
Hi Rufo
Jup kannte ich hab es jedoch nicht verstanden. Nach dem Mittagessen war dann alles klar.... 😁
DataColumn[] parentColumns = new DataColumn[2];
DataColumn[] childColumns = new DataColumn[2];
parentColumns[0] = ds.Tables["dt2"].Columns["Id_PK"];
parentColumns[1] = ds.Tables["dt2"].Columns["ArticleNo"];
childColumns[0] = ds.Tables["dt3"].Columns["Id_FK"];
childColumns[1] = ds.Tables["dt3"].Columns["ArticleNo"];
DataRelation objRelation2 = new DataRelation("Relation2", parentColumns, childColumns,false);
ds.Relations.Add(objRelation2);
Danke aber trotzdem für deinen Input.
Wer Rechtschreibfehler findet, darf sie behalten.