Jak v ASP.NET získat názvy sloupců a hodnoty z IEnumerable

20. 12. 2016, Vladimír Klaus, přečteno 446x

ASP.NET/C#

Když pracujete s databází, často vám stačí někde zobrazit jen údaje z konkrétních sloupců. Ale co když potřebujete hodnoty ze všech sloupců dané tabulky, resp. dotazu?

Tímto otevřeme databázi a jednoduchým dotazem získáme data, která obsahují řadu sloupců a jejich hodnoty.

var db = Database.Open("Data");
var selectQueryString = "SELECT * FROM SHIPMENTShipments WHERE ID=@0";
var data = db.QuerySingle(selectQueryString, IdZasilky);

A když se nechcete nebo nemůžete odkazovat na názvy sloupců, musíte si pomoci takto.

foreach (var item in data.GetDynamicMemberNames()) {
    @item: @data[item]<br>
}

item máte název sloupce a v data[item] pak jeho hodnotu. Výsledek může vypadat pak takto.

Jak v ASP.NET získat názvy sloupců a hodnoty z IEnumerable, obr. 1

V uvedeném příkladu jsme předpokládali, že výsledkem bude jeden záznam, proto QuerySingle. Pokud může být výsledkem více záznamů, musíme dotaz a celé zpracování trochu upravit. Dotaz bude řízen normálním Query, který může vrátit více záznamů. A pak se musíme odkazovat třeba na první záznam přes data.First().

var data = db.Query(selectQueryString, IdZasilky);

foreach (var item in data.First().GetDynamicMemberNames()) {
    @item: @data[item]<br>
}

Zdroj: