Ovaj primer radimo sa MySQL bazom .....

Koraci po kojima radimo:

  • Pokrenuti XAMPP - Apache i MySQL - proveriti imate li bazu podataka koju biste koristili (world)
    • Ako nemate ovu bazu, kreirajte bazu world i uradite import podataka (desni klik i preuzmite world.sql.zip)


U ADO.NET-u postoje dva osnovna načina rada: konektovani i diskonektovani.

U slučaju konektovanog rada, resursi se uzimaju sa servera sve dok se konekcija ne zatvori. Korisnik je konstantno povezan na izvor podataka.

Prednost konektovanog rada je da su podaci uvek ažurni.

Nedostatak konektovanog rada je da se sa bazom mora biti konstantno povezan preko mreže, što znači da je ovaj način zgodniji samo za manje projekte i manje izmene, tj rad sa manjom količinom podataka.

Ovde je prikazan blok dijagram pristupa bazi podataka primenom ADO.NET -a, u konektovanom režimu rada.

Redosled izvršavanja operacija pri radu u konektovanom okruženju je:

  1. otvaranje konekcije,

  2. izvršavanje komande,

  3. obrada zapisa u Reader-u,

  4. zatvaranje Reader-a

  5. i zatvaranje konekcije.

(U vašem praktičnom radu, u zavisnosti od snabdevača podataka, na početak dodajete odgovarajući nastavak, npr za MySQL je MySqlCommand, …)

Objekat klase Command


U konektovanom režimu rada, objekat klase Command omogućava direktan pristup podacima u bazi. Ovaj objekat sadrži referencu na SQL komandu ili uskladištenu proceduru koje se mogu izvršavati direktno.  Ako se kao snabdevač podataka izabere MySQL Server .NET snabdevač, odgovarajući komandni objekat se dobija instanciranjem klase MySqlCommand. Ako se kao snabdevač podataka odabere OLE DB.NET snabdevač podataka, komandni objekat se dobija instanciranjem klase OleDbCommand. Koristeći odgovarajući Command objekat moguće je izvršavati SELECT, INSERT, UPDATE i DELETE naredbe nad elementima baze podataka.


Koja su nam Svojstva od značaja (zasad):

CommandText – tekst SQL komande ili naziv uskladištene procedure koje treba izvršiti.

CommandType – tip komande (podrazumevano je Text ali možete postaviti npr StoredProcedure).

Connection – ukazaje na Connection objekat koji se koristi za komuniciranje sa bazom podataka.

* Konekcija mora biti otvorena pre izvršavanja komande! *

Parameters – Kolekcija objekata koja sadrži ulazne, izlazne i dvosmerne (ulazno/izlazne) parametre. Koristi se za parametarske upite i pozive uskladištenih procedura. Svaki komandni objekat može imati nula ili više parametara što se specificira svojstvom Parameters.

Metode objekta Command

ExecuteScalar metoda se koristi za izvršavanje upita koji vraća samo jednu vrednost.

ExecuteNonQuery metoda se koristi za izvršavanje INSERT, UPDATE i DELETE komande

ExecuteReader se koristi za izvršavanje SELECT komandi koje vraćaju skup zapisa.


*


Primeri u MySQL-u

Primer 1. U Form1_Load kreirati konekciju prema bazi world i ispisati poruku ako je povezivanje uspešno. U suprotnom ispisati da nije. Za ispis upotrebiti - Label1

        private void Form1_Load(object sender, EventArgs e)
        {
            MySqlConnection konekcija = new MySqlConnection();

            string konekcioniString = "server=localhost;user id=root;password=;database=world";

            konekcija.ConnectionString = konekcioniString;

            try
            {
                konekcija.Open();
                label1.Text = "uspeli smo da se povežemo na bazu world";
            }
            catch (Exception x)
            {
              //  MessageBox.Show(x.Message);
                label1.Text = "NISMO uspeli smo da se povežemo na bazu world";
                label1.Text += "\n razlog > " + x.Message;
            }
            finally 
            {
                konekcija.Close();
            }

Primer 2. - Kako se izvršava upit koji vraća skalarnu vrednost ? 

 U našu aplikaciju dodati poruku u kojoj se prilikom pokretanja prikazuje koliko ima redova u jednoj tabeli (u ovom slučaju koristiti tabelu city).

Način rada: Upotrebite metodu koja se nalazi iza sledećeg dugmeta i pozovite je iz Form1_Load-a.

 

Primer izvršavanja upita koji vraća jednu vrednost je dat u nastavku. ( U ovom primeru koristimo verziju MySQL )

Korišćenjem objekta Command izvršava se upit SELECT COUNT(*) FROM City koji daje broj zapisa u tabeli City. Prvi parametar MySqlCommand konstruktora predstavlja tekst SQL komande ili naziv procedure sa kojom se radi. Drugi parametar je odgovarajući MySqlConnection objekat pomoću koga se vrši konekcija na bazu podataka.

void izvrsiSkalar()
{
String konekcioniString = @"server=localhost;user id=root;password=;database=world";
MySqlConnection mojaKonekcija = new MySqlConnection(konekcioniString);
String skalarniUpit = "SELECT COUNT(*) FROM city";
MySqlCommand mojaSkalarKomanda = new MySqlCommand(skalarniUpit, mojaKonekcija);

try
{
mojaKonekcija.Open();
int brojZapisa = Convert.ToInt32(mojaSkalarKomanda.ExecuteScalar());
poruka.Text = "U tabeli se nalazi : " + brojZapisa.ToString() + " zapisa";
}
catch (MySqlException xcp)
{
poruka.Text = xcp.Message;
}
finally
{
if(mojaKonekcija != null)
mojaKonekcija.Close();
}
}

Napomene: 

  • Na Formi treba da imate još jednu labelu kojoj ćete promeniti naziv u poruka
  • Ne zaboravite da metodu pozovete na kraju Form1_Load-a.

Last modified: Thursday, 24 September 2026, 6:24 PM