Zadatak:

Na osnovu maturskog zadatka A16 - Izložba pasa, kreirati aplikaciju koja treba da izgleda kao prvi tab zadatka.

Novi materijali potrebni za rad spakovani u zip arhivu A16_materijal.zip (preuzmi)

*** Podsetite se:  ...

Pre pribavljanja ili izmene podataka neophodno je kreirati konekciju ka izvoru podataka. Broj raspoloživih konekcija je ograničen pa je potrebno držati konekciju otvorenom što je kraće moguće.

Prilikom kreiranja instance klase Connection neophodno je definisati ConnectionString atribut ove klase.

ConnectionString atribut predstavlja formatirani niz karaktera sastavljen od niza ime/vrednost parova odvojenih međusobno karakterom ‘;’. Ovaj atribut najčešće sadrži informacije o imenu mašine kojoj pristupamo, načinu autentifikacije korisnika, imenu baze kojoj pristupamo i sl. U nastavku je dat primer kreiranja konekcionog stringa korišćenjem Microsoft SQL Server data provider-a , Oracle data provider-a i MySQL data provider-a.

Microsoft SQL Server:
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.;Initial Catalog=IzlozbaPasa;Integrated Security=True");
ili možda van metoda:
(drugi način)
static string konekcioniString = "Data Source=.;Initial Catalog=IzlozbaPasa;Integrated Security=True";
SqlConnection konekcija = new SqlConnection(konekcioniString);

Data Source ukazuje na ime servera na kome se nalazi baza podataka kojoj pristupamo. Initial Catalog predstavlja ime baze podataka kojoj ćemo pristupati korišćenjem kreirane konekcije. Integrated Security ukazuje na način autentifikacije korisnika. U posmatranom slučaju pristupa se korišćenjem Windows korisničkog naloga. Alternativno, moguće je proslediti username i password naloga koji želimo da koristimo za pristup bazi podataka.

Lekcija u kojoj je to obrađivano: Teorija: ADO.NET Snabdevači podacima (Data Provider-i) i kreiranje konekcije ka bazi

Koraci rada:

  1. Preuzeti materijale i orvoriti pdf fajl sa tekstom zadatka
  2. Kreirati windows forms aplikaciju 
    • na formu postaviti Tab kontrolu i podesiti tabove kao u zahtevima  zadatka
    • na prvi tab postaviti tražene komponente (labele, comboBox-ove, pictureBox, Button-e)
    • kreirati metode za popunjavanje comboBox kontrola (psi, izložbe, kategorije)
    • metode pozvati prilikom loada forme
    • dvoklikom na dugme za izlaz, kreirati događaj klika na dugme i postaviti red koda za izlaz iz aplikacije
    • dvoklikom na dugme za prijavu kreirati događaj klika na dugme i tu izvršiti prvo odgovarajuće provere, a zatim i prijavu
  3.  

Za uslov da se pas može prijaviti samo za izložbe koje su bar 48 sati u budućnosti potrebno je proučiti funkciju dateadd ..

za MS SQL Server: https://www.w3schools.com/sqL/func_sqlserver_dateadd.asp
         na primer, za dodavanje 24 sata na trenutni datum i vreme, koristi se:   dateadd(hour, 24, sysdatetime()

... ...

https://www.w3schools.com/SQl/func_mysql_date_add.asp
         na primer, za dodavanje 24 sata na trenutni datum i vreme, koristi se: DATE_ADD(NOW() , INTERVAL 100 HOUR)

... ...

https://www.w3schools.com/Sql/func_msaccess_dateadd.asp
         ... na primer, za dodavanje 24 sata na trenutni datum i vreme, koristi se: DateAdd("h", 48, Now())

VEŽBE (stare, od ranije, koje služe samo kao inspiracija):

Video lekcija u kojoj je demonstriran pristup različitim bazama podataka, sa različitim Data Providerima je u nastavku:

Pristup bazi podataka korišćenjem DataReader-a from V. P. Filko on Vimeo.


Podsetite se:

...

Nakon uspostavljanja konekcije ka bazi podataka i kreiranja SQL upita, neophodno je izvršiti kreirani upit kako bi se pribavili podaci. Jedan način za pribavljanje podataka je korišćenje DataReader objekata.

DataReader objekti mogu samo da čitaju podatke i to red po red unapred. Imajući ovo u vidu, jasno je da je upotreba DataReader objekata korisna samo u situacijama kada je kreirani upit SELECT SQL naredba. DataReader objekti posebno se koriste kada je potrebno brzo proći kroz veliku količinu podataka pri čemu nije potrebno posedovati lokalne kopije jednom očitanih podataka.

DataReader objekti kreiraju se pozivom ExecuteReader() metode kreirane komande. Nakon kreiranja DataReader objekta, jedan red rezultujuće tabele podataka pribavlja se korišćenjem Read() metode.

Ukoliko pretpostavimo da je kreirana konekcija ka bazi, da bi se očitali podaci iz baze podataka neophodno je napisati SQL upit koji selektuje potrebne informacije, kreirati komandu koja će izvršiti upit i kreirati DataReader objekat koji će pribaviti podatke.

...

            SqlCommand komanda = new SqlCommand(upit, konekcija);
            try  // sve radimo ovde ...
            {
                konekcija.Open();
                SqlDataReader citac = komanda.ExecuteReader();
                while (citac.Read())
                {
                    cbPas.Items.Add(citac["PasID"] + " - " + citac["Ime"]);
                }
                cbPas.SelectedIndex = 0;
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
            finally
            {
                konekcija.Close();
            }

PREPORUKA: dobra je praksa koristiti try – catch – finally blok. Ako dođe do izuzetka (nešto ne valja – ne radi) da se izuzetak obradi, i u svakom slučaju, da se na kraju zatvori konekcija


Last modified: Tuesday, 21 October 2025, 5:25 PM