Diskuze: Vracení pole položek z databáze.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Caw, tym seznamem myslis "items"??...Lebo ak to vidim dobre tak doteho seznamu ukladas len ten objekt "item" stale dokola...Natej metode z List<> to vidis ze tam stale pridavas items.Add(item), ten isty objekt dokola
Ten item se vždy změní dle dalšího řádku v dataTable. Když to kontroluji za běhu. Přidá ho do listu. Při dalším dalším řádku je item jiný. A vloží se do listu. Ale přepíše to i ten původní item v listu jsou už dva itemy, ale uplně stejné. Pak se načte další item je zase jiný dle řádku. A vloží se do listu. už jsou tam 3 itemy, ale ten nový přepíše zase ty dva původní. Tak už jsou tam 3 stejné itemy a takhle stále dokola.
Do toho itemu se vkládají nová data z těch proprertyInfo. Tak by neměl být problém že je stejný. Ale asi se pletu.
Koukám na to krok za krokem. A když se vloží první item do listu a pak se přes to foreach načítá další řádek. Tak se to souběžně mění postupně i na těch vložených itemech v listu. To mi hlava nebere.
Tak už jsem to asi pochopil. Bude to tím že je to ten samý objekt. Nevytváří se nový? Jen se mění data proto se to mění i v tom listu? Akorát nevím jak to vyřešit. Díky Tadeáši.
Jo tes mna to napadlo ze to bude tim...Musis si spravit klony teho itemu a tim menit vlastnosti
Konkretne bude problem asi vtem SetValue(item, value) kde vlastne stale
nastavujes hodnotu tej istej referncii...Pak to ulozis do zeznamu cez
items.Add(item), ale to vlastne len vytvoris novu referenciu(odkaz) na ten isti
object, takze proste 3x odkazujes na to iste...Ked chces aby to vytvorilo vzdy
novy obejct tak pred tim SetValue musis spravit kopiu teho obejctu a vlozit tam
tu, ne ten povodny...Dufam ze sem pomohel 
Jop děkuji určitě. Už jsem to vyřešil. Sice nebyl takový plán. Ale snad to nebude tak špatný.
Tady to požaduje pouze jeden objekt a pak to skládá dohromady list.
public static List<ContiUser> GetUsers(this ContiUserConnect connect)
{
List<ContiUser> users = new List<ContiUser>();
DataTable table = connect.GetData();
for (int i = 0; i < table.Rows.Count; i++)
{
DataRow row = table.Rows[i];
users.Add((ContiUser)connect.GetData(row, new ContiUser()));
}
return users;
}
Tady to je ta původní metoda.
public object GetData(DataRow row, object item)
{
PropertyInfo[] props = item.GetType().GetProperties();
foreach (var prop in props)
{
string value = row[prop.Name].ToString();
prop.SetValue(item, value);
}
return item;
}
A už to funguje tak jak potřebuji.
Zobrazeno 10 zpráv z 10.