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:

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.
 
  1. 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:
 
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();
    }
}
  1. 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.
  2. 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)
  3. Primer unosa podataka na istom primeru:
     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