Diskuze: MySqlDataReader myreader
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.


Myslím, že bude problém v datech, protože k nějakému omezení v počtu sloupců nevidím důvod. Na druhou stranu, proč ta tabulka musí mít tolik sloupců? Nebylo by pohodlnější to nějak rozdělit do více tabulek? Jak to načítáš a jak to zobrazuješ?
No tabulka má proto tolik sloupcu protoze tam mam ulozeny nastaveni aplikace jednotlivých uzivatelu. Do datagrid neni problem ale pokud to chci do textBoxu tak mi to konci na 16tem sloupci. Nacitam to tak :
MySqlConnection connection = new MySqlConnection(Globals.connectionstr);
try
{
string query = "select * from nastaveni where id =" + Globals.predej_id;
MySqlCommand adapter = new MySqlCommand(query, connection);
MySqlDataReader myreader;
connection.Open();
myreader = adapter.ExecuteReader();
if (myreader.Read())
{
textBox1.Text = myreader.GetString("id");
textBox2.Text = myreader.GetString("nazev");
textBox3.Text = myreader.GetString("adresa");
textBox4.Text = myreader.GetString("mesto");
textBox5.Text = myreader.GetString("Psc");
textBox6.Text = myreader.GetString("cinnost");
textBox7.Text = myreader.GetString("ico");
textBox8.Text = myreader.GetString("dic");
textBox9.Text = myreader.GetString("hodinovka");
textBox10.Text = myreader.GetString("prescas");
textBox11.Text = myreader.GetString("kmsazba");
textBox12.Text = myreader.GetString("max_cas_naceste");
textBox13.Text = myreader.GetString("email");
textBox14.Text = myreader.GetString("telefon");
textBox15.Text = myreader.GetString("splatnost");
textBox16.Text = myreader.GetString("bank");
textBox17.Text = myreader.GetString("hlavicka_faktury");
textBox18.Text = myreader.GetString("paticka_faktury");
textBox19.Text = myreader.GetString("usrn");
textBox21.Text = myreader.GetString("pasw");
textBox22.Text = myreader.GetString("adresafb");
textBox23.Text = myreader.GetString("adresafak");
textBox24.Text = myreader.GetString("adresavyk");
textBox25.Text = myreader.GetString("usrnvyk");
textBox26.Text = myreader.GetString("paswvyk");
textBox27.Text = myreader.GetString("cestaflexibee");
}
connection.Close();
}
catch
{
}
Tak jsem na to konecne prisel melo to problem s polem typu memo. Musí být
na úrovni db nastaveno mediumtext. Nevím proč ale takto to chodí.
Jinak teď me trápí jiná věc . Kodování češtiny db mam utf8 všechny
písmena to píše dobře ale z texboxů to nepřenáší č vzdycky to napíše
jen C. Kde by mohl být problém ?
Bez nějakého kódu pro ukládání ti těžko někdo poradí. Jedno ti ale poradím. Bylo by dobré, kdyby název těch textboxů měl nějaký vztah k položce, kterou zobrazuje, třeba název "textBox21" ti za pár měsíců nic neřekne, budeš složitě dohledávat, co vlastně zobrazuje. Kdyby se jmenoval třeba "TextBoxPasw", tak hned víš, kterou hodnotu má ukazovat... Pro pozdější úpravy kódu je věcné pojmenování určitě výhodnější, ale je to čistě na tobě, jak to chceš mít...
Zdravím tak tady přikládám kod pro ukladani :
MySqlConnection connection = new MySqlConnection(Globals.connectionstr);
string query = "update uzivatel set zkratka_uz = '" + textBox2.Text.ToString() + "', jmeno = '" + textBox3.Text.ToString() + "', username = '" + textBox4.Text.ToString() + "',heslo = '" + textBox5.Text.ToString() + "',role = '" + textBox6.Text.ToString() + "',skupina = '" + textBox7.Text.ToString() + "' where id = " + Globals.predej_id;
MySqlCommand adapter = new MySqlCommand(query, connection);
MySqlDataReader myreader;
connection.Open();
myreader = adapter.ExecuteReader();
// MessageBox.Show("Ulozeno");
Globals.stavovy_radek = "Data z formuláře uživatel byla upravena !";
connection.Close();
pokud do kterehokoliv pole vložím č tak se přenese c .
DB je nastavena jako UTF8.
Díky za reakce
Pro ukládání do DB bys měl používat parametry, jinak ti někdo SQL injekcí může zrušit celou DB. Jiná písmenka se uloží normálně?
Jj jina pismenka jdou normalne. Trochu nechapu jak parametry ?
Prostuduj si toto
http://www.itnetwork.cz/…-zpracovani/
Abych se přiznal tak o sql injection jsem slysel pouze ve spojitosti s
webovýma aplikacema .
A ja tvořím aplikaci jako klienta mysql protože se k db potřebuju
připojovat z ruzných míst po republice. App neni nikde na webu. Ikdyž
přiznavam že metoda parametrů je elegantní.
Není to jen o "eleganci", ale o tom, že bez parametrů ti skutečně nějaký záškodník může smazat v DB co bude chtít...
Zobrazeno 11 zpráv z 11.