/ / Lewa relacja zewnętrznego łączenia między zestawami danych - .net, ado.net

Lewa zewnętrzna relacja łączenia między zestawami danych - .net, ado.net

Mam dwa zestawy danych o nazwie dataset1, dataset2. Chcę umieścić lewą relację między nimi.

np.: zestaw danych 1 zestaw danych zewnętrznych sprzężenia zewnętrznego2

Odpowiedzi:

3 dla odpowiedzi № 1

Twoje pytanie jest nieco niejasne, więc istnieją co najmniej dwie możliwe odpowiedzi.

Jeśli rzeczywiście masz dwa różne DataSets i muszą pozostać osobno DataSetmożesz wtedy użyć LINQ (z Linq do DataSet), aby utworzyć lewe sprzężenie zewnętrzne. Oto kilka wpisów na blogu wyjaśniających, jak tworzyć lewe połączenia zewnętrzne za pomocą LINQ (jeden i dwa). Twój kod prawdopodobnie będzie wyglądał wzdłuż linii

var joinResult = from ds1Row in dataset1.Tables["some table"]
join ds2Row in dataset2.Tables["some other table"]
on ds1Row.Field<T>("some column") equals ds2Row.Field<T>("some other column") into tmpResult
from resultRow in tmpResult.DefaultIfEmpty()
select // select whatever information you want
;

Jeśli naprawdę chciałeś zrobić połączenie między dwoma DataTables lub możesz połączyć dwa zestawy danych w jeden zestaw danych za pomocą Łączyć metoda, a następnie utworzyć relację między dowolnymi dwiema tabelami. Twój kod będzie wyglądał następująco:

mergedDataset.Relations.Add("relation name",
mergedDataset.Tables["some table"].Columns["some column"],
mergedDataset.Tables["some other table"].Columns["some other column"]);

2 dla odpowiedzi nr 2

Można utworzyć tylko DataRelation między dwiema tabelami w tym samym DataSet. To, co musisz zrobić, to użyć metody Merge, aby połączyć ze sobą dwa zestawy danych np.

DataSet1.Merge(DataSet2)

Następnie można utworzyć DataRelation między dwiema tabelami, uruchamiając

DataSet1.Relations.Add(new DataRelation("myRelationship",DataTable1.Columns("ID"),DataTable2.Columns("ID")))

0 dla odpowiedzi № 3

WEWNĘTRZNY DOŁĄCZ, POŁĄCZENIA ZEWNĘTRZNEGO ZEWNĘTRZNEGO i DOŁĄCZ DO PRAWIDŁOWEGO ZEWNĘTRZNEGO dla DataTables

link ma dobry program vb, który łączy zewnętrzne. Możesz go użyć, jeśli korzystasz z vb.net, sprawdź to.

DataTable Relational Operators w C # - JOIN Method

oba kody są oczywiste, a Duncan powiedział, że możesz to zrobić tylko za pomocą tabel danych, które nie używają dwóch oddzielnych zestawów danych.


0 dla odpowiedzi nr 4

Jeśli potrzebujesz tylko wyniku, sugerowałbym użycie LINQ do DataSets, który pozwala użyć dowolnego z operatorów LINQ do zapytania i połączenia dwóch DataTables / DataSets.

Erick