Článek: AN0001599Aktualizováno:: 20.10.2018
Tabulka níže zobrazuje seznam datových typů pro čtení a zápis z objektu DataRow pro jednotlivé typy sloupců. Pro zápis hodnot je možné použít více datových typů podle toho, co máte momentálně k dispozici.
Příklad pro čtení hodnot:
var value = dr['kod_sloupce'];
Příklad pro zápis hodnot:
dr['kod_sloupce'] = value;
Otazník za typem říká, že sloupec může být prázdný (může obsahovat NULL hodnotu).
Typ sloupce Číselníková hodnota
Při čtení hodnoty z násobného odkazu je i při prázdném sloupci VŽDY vrácena instance kolekce EntityInfoList nebo PersonInfoList.
Pro Classlink je v EntityInfo v hodnotě Id id referencovaného záznamu.
Pro XClasslink je v EntityInfo v hodnotě Id id referencovaného záznamu a v ParentId id cílové třídy.
Pro odkaz na uživatele je v PersonInfo v hodnotě Id id uživatele a v DisplayName úplné jméno uživatele.
Práce s násobnými odkazy
Kolekce můžete procházet pomocí cyklu FOR.
var linky = dr['nasobny sloupec'];
for( var i = 0; i < linky.Count; ++i)
{
var id = linky[i].Id;
var text = linky[i].DisplayName;
}
Entitu v kolekci můžete najít pomocí metody GetById( int id).
var link = linky.GetById(100); //100 je zde ID záznamu
Mazat link můžete některou z metod Remove...:
RemoveById(int id, bool duplicityId)
linky.RemoveById(100, true);
Parametr duplicityId nastavte na true, pokud může být v kolekci duplicitní výskyt jednoho ID. Jinak použijte false.
RemoveAt(int index)
linky.RemoveAt(3); //smaze item na pozici 3
Remove(item)
linky.Remove( linky[1]); //smaze item na pozici 1
Po přidání nebo odstranění reference je třeba daný dr (záznam DataRow) uložit, např.:
OG.DataRow.SaveData(dr);
Touto funkcí lze uložit kolekci záznamů DataRow a to jako celek v jedné transakci nebo jednotlivě.
OG.DataRow.SaveData(DataRowList dataRowList, bool allInTransaction);
Funkcí List GetIds() získáte seznam ID v dané kolekci. Ty lze použít v jiných funkcích.
var ids = linky.GetIds();
Další funkce pro EntityInfoList a PersonInfoList.
int GetMaxId() - získá MAX ID v kolekci
int GetMinId() - získá MIN ID v kolekci
bool IsAnyItemNull() - funkce vrátí true, pokud je některá položka v kolekci null. Jinak je vráceno false.
int Count - počet položek v kolekci
Kolekce PersonInfoList má ještě funkci bool Contains(int personId), která zjistí, zda je v kolekci uživatel zadaného ID.
var exist = dr['osoby'].Contains(100); //vráti true, pokud je v násobném sloupci osoby uživatel s ID 100
Pro získání plných objektů DataRow z jednoduchého nebo násobného sloupce použijte funkci GetDR.
var drLinky = dr.GetDR('nasobny sloupec');
Systémové sloupce
Systémové sloupce je možné jen číst. Plní se automaticky systémem.
Otazník za typem říká, že sloupec může být prázdný (může obsahovat NULL hodnotu).