1. Ponoviti šta je to konekcija ka bazi podataka i šta nam je sve potrebno
           (lekcija:  07.09. - ADO.NET Snabdevači podacima (Data Provider-i) i kreiranje konekcije ka bazi)

2. Šta radimo:

Pristupićemo bazi podataka korišćenjem programskog koda.

Zadatak koji ćemo da radimo je deo jednog od maturskih zadataka iz priručnika
   (A13, priručnik iz 2022, ( PREUZMITE PRIRUČNIK ako ga nemate) )

Baza:  DVD_Kolekcija, i to za MS SQL Server (Desni KLIK za preuzimanje baze ako je nema na kompu i Save Link As...)

Kreirati novi projekat sa formom kao na prvoj slici na strani 150 (meni koji je sa desne strane nije potreban ovaj put)
Kreirana forma pored treba da prikazuje podatke o svim producentima u listBox kontroli (šifra, naziv producentske kuće). Takođe na formu treba postaviti polja za pojedinačni prikaz izabranog producenta.
Odabir producenta, čije podatke je potrebno promeniti vrši se selekcijom reda u listBox kontroli . Selektovane podatke prikazati u pojedinačnim poljima forme


Da se podsetimo - ovo ste radili u 3. razredu,  (22/23. 11.) - ListBox

Ako je potrebno, pogledajte objašnenje na sledećoj web stranici:


3. Uputstvo za rad:

    1. Prvo postaviti komponente:
    2. Dvoklikom na formu, isprogramirati da se prilikom učitavanja forme popuni ListBox1 sa podacima iz tabele.

      Savet: Ovo uraditi u posebnoj metodi (UnesiListu()) koja se onda poziva iz Form1.Load().

      Na taj način, kada se kreira Form1_Load događaj, tamo se poziva metoda PopuniListu() - ime sugeriše da je to metoda kojom se vrši popunjavanje neke liste - u našem slučaju to je lostBox komponenta na formi.

      Pored ove metode, napraviti metodu UnesiListu() koja će se pozivati svaki put kada treba uneti listu sa podacima. U nastavku je iza dugmeta sakriven generički primer unosa podataka iz baze u listBox. Zvezdice su postavljene kao kod ***Connection su su sledeću svrhu: ako se koristiti MS SQL Server umesto *** pišete Sql, ako koristite MySql onda umesto zvezdica ide MySql, i tako redom. U suštini je isto - koji god da je izvor podataka, menja se samo prefiks ...


      void UnesiListu()
         {
             listBox1.Items.Clear();
      string konekcioniString=" ... ovde ide vaš konekcioni string ...."; ***Connection konekcija = new ***Connection(konekcioniString); string Upit = "ovde ide upit"; try { konekcija.Open(); ***Command komanda = new ***Command(Upit, konekcija); ***DataReader rd = komanda.ExecuteReader(); while (rd.Read()) listBox1.Items.Add(rd[0] + "\t" + rd[1] + "\t" + rd[2] + .... ); konekcija.Close(); } catch (Exception a) { MessageBox.Show(a.Message); MessageBox.Show("Greska!"); } }
    3. Ako prikaz nije lepo složen, možete postaviti svoja rastojanja za TAB.

      Jedan od načina za to je da se prilikom inicijalizacije komponenti, u konstruktoru, podese tab stopovi za listBox.

      Klik na dugme ispod da vidite primer kako se to može uraditi:



                  
                  listBox1.UseCustomTabOffsets = true;
                  listBox1.CustomTabOffsets.Clear();
                  listBox1.CustomTabOffsets.Add(20);
                  listBox1.CustomTabOffsets.Add(95);
                              
    4. Dvoklikom na listBox, kreiraće se događaj SelectedIndexChanged - šta će da se desi ako se odabere nešto u listBox-u.
      U našem primeru treba da se prilikom odabira nekog reda u listBox-u podaci iz njega prikažu u textBox-ovima iznad. Za početak samo ubacite da se u MessageBox-u ispiše sadržaj reda koji je odabran. Tek nakon uspešnog prikaza celog reda podelite taj red na potrebne delove (možete koristiri Split() sa '\t' kao delimiterom)
    5.  
Last modified: Wednesday, 29 October 2025, 9:35 AM