IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
M6692
Člen
Avatar
M6692:24.5.2020 14:20

Ahojte, som úplný začiatočník a je možné že táto moja otázka je nesprávne zaradená a patrí do sekcie DATABÁZY tak prosím o prepáčenie. Mám lokálnu databázu, v nej tabuľku TableClen ktorá má stĺpce ID, Meno, Bydlisko ....Problém mám taký že mám vytvorený kód ktorým si do COMBOBOXu viem načítať príslušné údaje z lokálnej databázy, tabuľky TableClen, konkrétne stĺpec Meno.Toto mi funguje správne, potreboval by som ale do premennej napr. Identifikator načítať hodnotu ID ktorá prislúcha vybranej hodnote Meno v tabuľke TableClen. Jednoducho potrebujem pre následné použitie identifikovať vybranú hodnotu v Comboboxe podľa nielen podľa mena (nakoľko meno sa môže opakovať), ale podľa jedinečného ID.

void ComboClen()
        {
            SqlConnection conclen = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\NB\Documents\Clen.mdf;Integrated Security=True;Connect Timeout=30");
            comboBox1.Items.Clear();
            conclen.Open();
            SqlCommand cmdclen = conclen.CreateCommand();
            cmdclen.CommandType = CommandType.Text;
            cmdclen.CommandText = "select Meno from TableClen";
            cmdclen.ExecuteNonQuery();
            DataTable dtclen = new DataTable();
            SqlDataAdapter daclen = new SqlDataAdapter(cmdclen);
            daclen.Fill(dtclen);
            foreach (DataRow drclen in dtclen.Rows)
            {
                comboBox1.Items.Add(drclen["Meno"].ToString());

            }

            con.Close();

        }

Dúfam že som to dosť pochopiteľne vysvetlil.

Ďakujem

Zkusil jsem: Dúfam že som to dosť pochopiteľne vysvetlil.

Chci docílit:
Ďakujem

 
Odpovědět
24.5.2020 14:20
Avatar
zelvicek
Člen
Avatar
zelvicek:26.5.2020 14:22
  1. Použití DataTable je zbytečné. Použij cmdclen.Execu­teReader().
  2. Z kódu je patrné, že plnění comboBox1 děláš vlasními silami, nikoliv nějakým bindingem.

Jako self-learn téma ti navrhuji:

class Person {public int Id {get;set;}public int Meno {get;set;}}

Person[] mockPpl=new Person[] {...};
foreach (var item in mockPpl)
{
//obsah záměrně nedolnˇuji, toť tvůj úkol.
}
 
Nahoru Odpovědět
26.5.2020 14:22
Avatar
zelvicek
Člen
Avatar
zelvicek:27.5.2020 8:29

No pokud stále nic, pak už jen pořádně přečíst https://docs.microsoft.com/…llection.add?…

 
Nahoru Odpovědět
27.5.2020 8:29
Avatar
Jan Stodůlka
Tvůrce
Avatar
Jan Stodůlka:27.5.2020 9:39

Rozšiř si select:
select Id, Meno from TableClen

Uprav si plnění comba:

foreach (DataRow drclen in dtclen.Rows)
{
  //pridej si konverzi ID
  Person p = new Person(drclen["Id"], drclen["Meno"].ToString());
  comboBox1.Items.Add(p);
}

U Comboboxu koukni na vlastnost DataSource. Do ní můžeš bindovat celou kolekci všech uživatelů najednou.

Dále přidej using pro dispose objektů. Příklad pro jeden objekt:

using(SqlConnection conclen = new ...)
{
  ...
}

A poslední věc. Myslím, že není třeba do názvu tabulky dávat TABLE. Běžně se používá množné číslo, protože tabulka obsahuje více záznamů -> Clenove nebo Members.
Též doporučuji vše psát anglicky. Je to skvělá možnost se angličtinu aspoň částečně naučit.

Nahoru Odpovědět
27.5.2020 9:39
Nechodím do hospody, protože doma programuji.
Avatar
batman
Člen
Avatar
batman:28.5.2020 8:27

Myslim ze panove zelvicek a pan Stodulka ti poradili dobre ale samozrejmne pokud si zacatecnik tak to chce trosku googlit ono ten clanek od Microsoftu ti moc nepomuze kdyz zacinas tak jeste vsechny principy nechapes nekdy jsem na tom podobne jako ty tak hlavu vzhuru a nevzdavej se ono to pujde jen to chce cas

 
Nahoru Odpovědět
28.5.2020 8:27
Avatar
Jan Stodůlka
Tvůrce
Avatar
Odpovídá na batman
Jan Stodůlka:28.5.2020 9:39

Přesně tak. Programování se nenaučíš za týden, je třeba to neustále zkoušet, studovat a předělávat staré programy podle nových postupů.
A až si budeš myslet, že vše už umíš, tak přijde nová technologie a začneš zase od začátku :-)

Do práce jezdím autobusem a asi rok jsem se každé ráno bavil tím, že jsem vymýšlel jak naprogramovat aplikaci pro evidenci křižovatek, semaforů, jízdních pruhů, přechodů...atd. Tohle také pomůže k lepším programům. Nic neprogramovat, jen o tom přemýšlet.

Nahoru Odpovědět
28.5.2020 9:39
Nechodím do hospody, protože doma programuji.
Avatar
M6692
Člen
Avatar
Odpovídá na Jan Stodůlka
M6692:28.5.2020 16:48

Ahojte
ďakujem každému za príspevky, zatiaľ mi to je trošku zložité ale zoberiem google a spolu porozmýšľame :)
Ak ešte môžem otázku trošku mimo zadania, podľa Vás akou formou sa je najrozumnejšie začať učiť sa. Mám na mysli napr. absolvovať kurzy v školiacich strediskách, online kurzy, knihy, google .... ???

 
Nahoru Odpovědět
28.5.2020 16:48
Avatar
Jan Stodůlka
Tvůrce
Avatar
Odpovídá na M6692
Jan Stodůlka:28.5.2020 23:11

Hltej všechno co najdeš. Informací je opravdu velká kopa a každým měsícem je toho víc a víc.
Nejlepší asi je programovat a s někým se o tom bavit.
Kdyby jsi chtěl s něčím poradit, klidně se ozvi.

Koukni například na tyto videa:
https://wug.cz/zaznamy
https://www.youtube.com/…8yln1lqKHCRw
https://www.youtube.com/watch?…

Nahoru Odpovědět
28.5.2020 23:11
Nechodím do hospody, protože doma programuji.
Avatar
batman
Člen
Avatar
batman:19.7.2020 19:02

Pan Stodulka ma pravdu programovat a povidat si o tom s nekym zkusenejsim a pokud umis dobre anglictinu jsou i nejaka fora zamerena na C# nebo jine programovaci jazyky na nektere jsem narazil nahodne na youtube videich drzim palce at se dari

 
Nahoru Odpovědět
19.7.2020 19:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.