... nastavljamo zadatke u dva tročasa ...
Completion requirements
Slika formi na kraju:
Prva grupa:

Druga grupa:

Šta je isto za obe grupe:
Pripreme za unos: treba da se obrišu sadržaji svih textBox kontrola na formi. Deo programskog koda je sakriven iza sledećeg dugmića: prikaži/sakrij
void isprazni()
{
foreach (Control x in this.Controls) // za svaku od kontrola na OVOJ formi
{
if (x is TextBox) // ako je u pitanju textBox
{
x.Text = ""; // isprazni ga (ubaci prazan string)
}
}
}
private void btnPriprema_Click(object sender, EventArgs e)
{
isprazni();
}
Šta je RAZLIČITO za obe grupe:
Imena komponenti koje se koriste se razlikuju, ali je princip rada isti.
Koristimo sve ono što smo dosad radili da bi se pristupilo bazi i u nju upisivali/menjali/brisali podaci.
Dve različite grupe rade različite zadatke, koji jesu iste težine, ali se radi sa različitim bazama.
- SQL upiti za kreiranje baza i tabela u njima su dati u prethodnoj lekciji.
- U prethodnom razredu je rađeno postavljanje komponenti na formu i tim delom se nećemo posebno baviti
- U nastavku neće biti prikazan sav programski kod već samo neki delovi delovi.
- Prilikom učitavanja forme trebalo bi da se popune comboBox komponente sa onim što već ima u bazi. Savet je da se u posebnoj metodi izvede popunjavanje. To je iz razloga što se taj sadržaj može menjati u toku rada programa - ako se nešto unese u bazu, ili ako se izmeni ili obriše. Jednom kada kreirate posebnu metodu za popunjavanje comboBox-a, prvo je pozovite prilikom loada vaše forme (Form1_Load), a trebalo bi da se ista metoda pozove i nakom unosa/izmene/brisanja. Kao primer, deo programskog koda (prikaz proizvođača u komponenti comboBox) je sakriven iza sledećeg dugmića: prikaži/sakrij
void prikazProizvodjaca()
{
cbProizvodjaci.Items.Clear(); // prvo uklonite sve redove - da bi ispočetka izvršili popunjavanje
// konekcija je ka SQL Server bazi sa nazivom "epic" i na lokalnom serveru. Vi koristite vaš konekcioni string
SqlConnection konekcija = new SqlConnection("Data Source=.;Initial Catalog=epic;Integrated Security=True");
SqlCommand komanda = new SqlCommand();
komanda.Connection = konekcija;
string upit = "SELECT NAZIV FROM PROIZVODJAC";
komanda.CommandText = upit;
try
{
konekcija.Open();
SqlDataReader rd = komanda.ExecuteReader();
while (rd.Read())
{
cbProizvodjaci.Items.Add(rd[0]);
}
}
catch (Exception t)
{
MessageBox.Show(t.Message);
}
finally
{
konekcija.Close();
}
}
- Bilo bi dobro da se svim komponentama koje se nalaze na vašoj formi promene nazivi - da biste prilikom pisanja programskog koda mogli što bolje da koristite IntelliSense - predloge od samog okruženja šta kucati sledeće, kao i da biste u kodu znali šta je šta.
- Za unos podataka u bazu se u posebne textBox-ove pišu podaci. Ako se ne upiše ništa, trebalo bi da se ne dozvoli unos podataka u bazu već da se samo ispiše poruka da sva polja nisu popunjena (koristiti na primer MessageBox)
- Primer unosa podataka na istom primeru: prikaži/sakrij
private void btnUnosProizvodjaca_Click(object sender, EventArgs e)
{
if (txtAdresaProizvodjaca.Text != "" && txtNazivProizvodjaca.Text != "")
{ // ako su OBA polja POPUNJENA (&& znači logičku operaciju I)
try
{
konekcija.Open();
komanda.CommandText = "INSERT INTO Proizvodjac(Naziv,Adresa) Values (@n,@a)";
komanda.Connection = konekcija;
komanda.Parameters.Clear();
komanda.Parameters.AddWithValue("@n", txtNazivProizvodjaca.Text);
komanda.Parameters.AddWithValue("@a",txtAdresaProizvodjaca.Text);
komanda.ExecuteNonQuery();
konekcija.Close();
MessageBox.Show("Unos uspešan");
txtAdresaProizvodjaca.Text = "";
txtNazivProizvodjaca.Text = "";
}
catch (Exception zz)
{
MessageBox.Show(zz.Message);
}
}
else // ako neko od polja nije popunjeno - ili oba nisu popunjena:
{
MessageBox.Show("Nisu popunjena oba polja");
}
prikazProizvodjaca(); // ne zaboravite nakon ovoga da se "osveži" prikaz svih proizvođača
}
Last modified: Sunday, 2 November 2025, 3:34 PM