Diskuze: Načtení do DataGrid
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 11 zpráv z 11.
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.
No, záleží na co to má být.
Pokud chceš zobrazit data ze 2 tabulek v jednom gridView, tak doporučuji na
úrovni SQL udělat třeba LEFT (či RIGTH) OUTER JOIN (případně FULL OUTER
JOIN , podle situace)
např:
SELECT *
FROM PredvolbaTel
LEFT OUTER JOIN Psc
ON PredvolbaTel.ID = Psc.PredvolbaTelID
Pak ve vlastnostech GridView můžeš použít AutoGenerateColumns. Pokud
je True, automaticky ti vygeneruje sloupce podle sloupců tabulky z
databáze.
Nebo (což je praktičtější pro uživatele) nastavíš
AutoGenerateColumns="false" a pak přidáš sloupce ručně (případně v
designéru):
<asp:GridView ID="Predvolby" runat="server" AutoGenerateColumns="False" DataKeyNames="PredvolbaID">
<Columns>
<asp:BoundField DataField="Predvolba" HeaderText="Předvolba telefonního čísla" />
</Columns>
</asp:GridView>
Příklad, který jsem uvedl, není to pravé ořechové. Dám jiný přehlednější.
Mám např. tabulku Firma ( Id, Firma, Ulice, PscId) a dále tabulku Psc (Id, Obec, CastObce, Psc).
Na form potřebuji v jednom dataGrid zobrazit: Id, Firma, Ulice, PSCId, Obec, CastObce, Psc) Oboje Id bude následně visible = false.
Tohle asi bude srozumitelnější. Píši to C# a databázi mám MS-SQL 2008 Expres.
Pak tedy SQL bude vypadat takto:
SELECT F.Id, F.Firma, F.Ulice, F.PSCId, P.Obec, P.CastObce, P.Psc
FROM Firma F
LEFT OUTER JOIN Psc P
ON F.PSCId = P.ID
No a v GridView to už bude jak jsem psala prve.
(Doporučuji používat vlastnost DataKeyNames, kam se dává Id záznamu. Lepe
se pak s tím pracuje později v C#.)
Tedy:
<asp:GridView ID="Firmy" runat="server" AutoGenerateColumns="False" DataKeyNames="ID">
<Columns>
<asp:BoundField DataField="Firma" HeaderText="Název firmy" />
<asp:BoundField DataField="Ulice" HeaderText="Ulice" />
...
<asp:BoundField DataField="Id" Visible="false" />
</Columns>
</asp:GridView>
Ještě jedna, možná hloupá otázka, jak otevřu ten designer? Já ho zatím nepoužíval. Mám VS2010 Profi. Dík
Ve VS si můžeš vybrat zobrazení dole pod kódem (zdroj - designer(návrh) - split)
Tak už mi to funguje. Mám ještě jeden dotaz, když budu takhle spojovat více tabulek, lze zadat vícekrát rovnost jednotlivých buněk (ON F.PscId = P.ID) a případně jak se oddělují od sebe. Já bych to viděl čárkou, nebo středníkem (ON F.PscId = P.ID, BankId = BankaId)?
když si dáš v designeru konfiguraci datového zdroje, můžeš si tam toto
spojení více tabulek naklikat a on ti z toho vyplivne, jak má výsledný SQL
dotaz vypadat, ale rozhodně to nelze spojovat čárkou ani středníkem,
protože je to v podstatě podmínka a tam platí buď všechny ("AND") nebo jen
některé ("OR") 
Tak to jsem ráda, že ti to funguje 
Na další spojení bys měl psát další JOIN
např.
FROM Firma F
LEFT OUTER JOIN Psc P
ON F.PSCId = P.ID
LEFT OUTER JOIN BanovniUcet B
ON B.ID = F.BankovniUcetID
Možná zkus mrknout na nějaké články o SQL...
Zobrazeno 11 zpráv z 11.