konto usunięte

Temat: Pobieranie nazwy kolumny

Witam,
Mam mały problem z pobraniem prawdziwej nazwy kolumny z DataSeta. Niby proste bo ds.Tables[0].Columns[i].ColumnName gdzie ds jest DataSetem. Ale w przypadku selecta mniej więcej takiego:

select * from Users u
join groups g
on g.Id=u.GroupId

niestety w datasecie nie znalazłem czegoś takiego jak u.Id, czy u.Name (pola przykładowe).

Ma ktoś jakieś pomysły?

konto usunięte

Temat: Pobieranie nazwy kolumny

"select * from Users u" - wybieranie "*" to zła praktyka. Wypisz po przecinku nazwy kolumn i będzie po sprawie.
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Pobieranie nazwy kolumny

Bo to robi sie z DataRow

foreach(DataRow dr in ds.Tables["Nazwa_LUB_Indentyfikator_bez_nawiasu"].Rows)
{
string a = dr["Nazwa_Kolumny"].ToString();
}

fajna metoda to ds.Tables["Nazwa"].Select("[Kolumna]='wartosc'")

ogolnie kolega dobrze mowi z ta gwiazdka bo jeszeli tabela jest spora to ciagnie sie duzo niepotrzebnych danych, ktory moze nie potrzebujemy.Dariusz Ż. edytował(a) ten post dnia 03.05.09 o godzinie 11:27

konto usunięte

Temat: Pobieranie nazwy kolumny

Fakt * to zły przykład ale np jeżeli w tabeli Users i Groups będzie pole o nazwie "Name" to nawet jak zastosuję alias np ... g.Name as GroupName ... to i tak będę chciał wiedzieć że to jest g.Name a nie GroupName. No i problem jest w tym.

"Bo to robi sie z DataRow....." - no ok ale skąd ja mam wiedzieć jakie kolumny są w danym zapytaniu. Powyższy był przykładem także Twoje, Dariuszu rozwiązanie odpada

konto usunięte

Temat: Pobieranie nazwy kolumny

ee.. nie wiem dokladnie do czego to potrzebujesz ale w ten sposob tego nie zrobisz, moze napisz co potrzebujesz z tym zrobic to wymyslimy jakies inne podejscie.
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Pobieranie nazwy kolumny

Marcin Woźniak:
Fakt * to zły przykład ale np jeżeli w tabeli Users i Groups będzie pole o nazwie "Name" to nawet jak zastosuję alias np ... g.Name as GroupName ... to i tak będę chciał wiedzieć że to jest g.Name a nie GroupName. No i problem jest w tym.

"Bo to robi sie z DataRow....." - no ok ale skąd ja mam wiedzieć jakie kolumny są w danym zapytaniu. Powyższy był przykładem także Twoje, Dariuszu rozwiązanie odpada

mozna zczytac analogicznie z DataColumn ale tego nie powinno sie tak robić.

foreach(DataColumn dc in ds.Tables["Nazwa_LUB_Indentyfikator_bez_nawiasu"].Columns)
{
string a = dc.ColumnName;
}

co do wlasciswosci ColumnName nie jestem pewien, ale pod kropka cos wyskoczy ;).
Wojciech Gomoła

Wojciech Gomoła Now is my Time

Temat: Pobieranie nazwy kolumny

Z tego co pamiętam to provider do SQL Server przy powtarzających się mappingach kolumn dokleja kolejne liczby naturalne (Nie pamiętam tylko czy zaczyna od 1 czy od 2), olewa natomiast aliasy (tak więc będziesz miał kolumny Name i Name1 (Ewentualnie Name2)). Ja osobiście napisałbym:
Select
i.Name
g.Name as GroupName
from
Item i
join Group g on .... i po problemieWojciech Gomoła edytował(a) ten post dnia 13.05.09 o godzinie 20:57

konto usunięte

Temat: Pobieranie nazwy kolumny

Nom zgadza się właśnie tak robi. Dziękuję wszystkim za pomoc.

Następna dyskusja:

SPGridView formatowanie kol...




Wyślij zaproszenie do