GRY-Online.pl --> Archiwum Forum

Pomoc przy konwersji z C# do VB.

25.03.2008
20:52
[1]

Lozano23 [ Pretorianin ]

Pomoc przy konwersji z C# do VB.

Czy ktoś mógłby mi pomóc i przekonwertować ten krótki fragment kodu w C#:


Niestety translatory na necie się wysypują - może zna ktoś dobry i sprawdzony, który sobie z tym poradzi?

Dzięki.

25.03.2008
20:59
[2]

legrooch [ MPO Squad Member ]

Po co Ci ten kawałek kodu?Obsługa LINQ z Datasetem i datatable w taki sposób? :O
Napisz od zera to, co potrzebujesz...

25.03.2008
21:03
[3]

Lozano23 [ Pretorianin ]

Kumpel ma problem, ponieważ chce zrobić PIVOT danych otrzymanych z LINQ.

Ma kod, który obraca tabelę, ale jest on pod zwykłe zapytanie SQL.

Nie wiemy natomiast jak to przerobić na LINQ.


Kod do PIVOTu jest tutaj:



Problem w tym, że LINQ daje w rezultacie obiekt IQueryable i jest problemik z przejściem na tabelę.

25.03.2008
21:05
[4]

legrooch [ MPO Squad Member ]

Lozano23 ==> .NET 2.0 ma opcję pivotu na SQL (jak i SQL posiada to w sobie). Otrzymujecie wynik i to co najwyżej jazda z LINQ.

Edit - wynik LINQ możecie albo przenieść jako poruszanie się po kolekcjach, albo jako rzutowanie na inny typ odpowiedni dla elementów.

25.03.2008
21:31
[5]

Lozano23 [ Pretorianin ]

Otrzymujecie wynik i to co najwyżej jazda z LINQ.

Eee, czyli co? Zrezygnować z LINQ w tym przypadku?


Coś wyczytałem, że w beta wersjach LINQ były funkcje takie jak ToDataTable - czemu je wywali?

25.03.2008
22:08
smile
[6]

Lozano23 [ Pretorianin ]

^

26.03.2008
00:53
[7]

legrooch [ MPO Squad Member ]

Lozano ==>Nie wiem, co chcecie zrobić....
Użyjcie Directcast jeżeli potrzebujecie przenieść cały obietk IQuerable lub poruszajcie się po obiekcie for each in iquerable, jeżeli potrzebujecie wyświetlić/zrobić coś z danymi.

26.03.2008
10:04
[8]

Lozano23 [ Pretorianin ]

Chodzi o to, by wypełnić Grida odwróconą tabelą (pivot - zamiana kolumn z wierszami).

Próbowałem tak:

Dim db As New MojeDbDataContext

Dim query= ZAPYTANIE


Dim dt As DataTable = DirectCast(query, DataTable)

Grid2.DataSource = dt
Grid2.DataBind()

I dostaję błąd:

System.InvalidCastException: Nie można rzutować obiektu typu '<WhereIterator>d__0`1[VB$AnonymousType_1`5[System.Int32,System.String,System.DateTime,System.Nullable`1[System.Boolean],System.String]]' na typ 'System.Data.DataTable'.

26.03.2008
10:27
[9]

legrooch [ MPO Squad Member ]

W jakim celu chcesz używać tu LINQ? Nie lepiej wykorzystać zwykłe zapytanie do SQL?
Ale omijając temat - w linku masz przykład pełnego pivotowania. Odpytaj zapytaniem TSQL odpowiednio bazę.



© 2000-2024 GRY-OnLine S.A.