26/27.09. - Kreiranje konekcije ka bazi podataka iz programskog koda
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...)
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:
- Prvo postaviti komponente:
- 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 ...
Klikni da vidiš generički primer kako može da se unese lista
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!"); } } -
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:
Klikni da vidiš kako podesiti ListBox u Form1() - Nakon InitializeComponent()
listBox1.UseCustomTabOffsets = true; listBox1.CustomTabOffsets.Clear(); listBox1.CustomTabOffsets.Add(20); listBox1.CustomTabOffsets.Add(95); - 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)