Edyta Ratajczyk

Edyta Ratajczyk
programista/bazodano
wiec/analityk
biznesowy IT

Temat: DataView na dwóch DataTable?

Edit - tematu nie zmienię... chodzi o C#

W sumie nie wiem, czy tego do końca potrzebuję.
Ale..
W DataSet dwie tabele.
Tab1
pole1
Id

Tab2
pole1
pole2
pole3
ID

Potrzebuję coś (datatable, dataview, cokolwiek) co mi zwróci wartości z drugiej tabeli w połączeniu z pierwszą okrojoną...

Select Tab2.ID, Tab2.pole1, Tab2.pole3, Tab3.pole3
from Tab1 inner join Tab2 on Tab1.ID=Tab2.ID
where Tab1.pole1="cośtam"
order by Tab2.pole3

o. Takie coś np. (istotne jest ograniczenie na pierwszej tabeli a sort w drugiej).
HEUP!Edyta Ratajczyk edytował(a) ten post dnia 27.03.09 o godzinie 13:06
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: DataView na dwóch DataTable?

LINQ. Nie używałem osobiście Union'a ale myślę, że w tej sytuacji wystarczy. Where'a i Sortowanie stosowałem i działa pięknie.

EDIT:
Oczywiście Join'a nie Uniona - źle spojrzałem.Norbert Maziarz edytował(a) ten post dnia 27.03.09 o godzinie 13:57
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: DataView na dwóch DataTable?

Znalazłem taką propozycję:

DataView na tabeli Tab1, a potem skorzystanie z metody RowFilter. Jako kryteria podać np: "IN ([lista_id z tabeli tab2]) AND pole1='cośtam'"

Ale nie testowałem i nie wiem jak z wydajnością.
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: DataView na dwóch DataTable?

Gdyby to miało być LINQ to mogłoby to wyglądać tak:



var query = (from row1 in Tab1.AsEnumerable()
join row2 in Tab2.AsEnumerable() on
row1.Field("Id") equals row2.Field("Id")
select new {
Id = row1.Field("Id"),
pole11 = row1.Field("pole1"),
pole21 = row2.Field("pole1"),
pole22 = row2.Field("pole2"),
pole23 = row2.Field("pole3")})
.Where(w=>w.pole11 == "Costam")
.OrderBy(o=>o.pole23);



Oczywiście var'a można później przekonwertować do DateTable lub podpiąć jako źródło do kontrolek.Norbert Maziarz edytował(a) ten post dnia 27.03.09 o godzinie 14:44

Następna dyskusja:

Sortowanie dataset/datatabl...




Wyślij zaproszenie do