19.02.2016, Vladimír Klaus, navštíveno 1835x
ASP.NET/C#
SQL
Předpokládejme, že máte v nějaké tabulce sadu hodnot, které potřebujete zobrazit jako seznam oddělený čárkami. V mém případě potřebuji zobrazit seznam kategorií, do kterých je článek zařazen. Nabízí se dvě řešení.
Nejprve si ukážeme základ a běžné řešení:
string s = "";
//otevřu databázi
var db = Database.Open("Data");
var SQL =
"SELECT Kategorie.Nazev FROM ClankyKategorie " +
"INNER JOIN Kategorie " +
"ON ClankyKategorie.IdKategorie=Kategorie.ID " +
"WHERE ClankyKategorie.IdClanku=@0 "+
"ORDER BY Kategorie.Nazev";
var data = db.Query(SQL, aIdClanku);
//mám data, teď sestavím seznam oddělený čárkami
foreach (var Kategorie in data) {
s = s + Kategorie.Nazev+ ", ";
}
//odstraním poslední čárku a mezeru
if (s.Length > 0) {
s = s.Substring(0, s.Length - 2);
}
return s;
Ale pokud použijeme LINQ zápis, dostaneme se k úspornější a elegantnější variantě:
//mám data, teď sestavím pole složené z názvů kategorií
var pole = data.Select(p => p.Nazev).ToArray();
//a pak už jednoduše sestavím výsledný string s oddělovačem
s = string.Join(", ", pole);
return s;
Pokud by vás zajímalo, k čemu třeba toto může sloužit, tak vězte, že právě takto připravuji na tomto webu klíčová slova pro stránku s daným článkem. Stačí stisknout Ctrl+U (Zobrazit zdrojový kód) a najít na jakékoliv stránce <meta name="Keywords" ...>