Osnovni objekti ADO.NET Data Provider-a
Scenario pristupa podacima korišćenjem ADO.NET komponenti odvija se na sledeći način:
Objekat Connection uspostavlja vezu između baze podataka i aplikacije. Ta konekcija se koristi za pristup bazi direktno pomoću Command objekta ili pomoću objekta DataAdapter. Command objekt obezbeđuje realizaciju odgovarajućeg SQL upita u direktnoj komunikaciji sa bazom držeći sve vreme pristupa konekciju otvorenom. U slučaju da vraća više od jedne vrednosti Command objekt vraća aplikaciji DataReader objekt kao snabdevača aplikacije podacima. Podaci dobijeni na ovaj način mogu biti direktno procesuirani od strane logike aplikacije. Drugi način snabdevanja aplikacije podataka realizuje se indirektno pomoću DataAdapter objekta koji popunjava objekat DataSet. Ažuriranje podataka u bazi od strane aplikacije može se izvesti korišćenjem ili objekta Command ili pomoću objekta DataAdapter.
Connection
Connection
objekat sadrži sve podatke neophodne za realizaciju konekcije
aplikacije sa bazom podataka.
Sve
informacije neophodne za uspostavljanje komunikacionog kanala između
aplikacije i baze podataka sadržani su u osobini ConnectionString
objekta Connection.
Connection objekat takođe podržava izvršavanje transakcija nad bazom podataka.
Command
Možemo koristiti Command objekte za izvršavanje različitih SQL naredbi nad bazom podataka pomoću odgovarajuće konekcije. Pomoću ovog objekta možemo koristiti za egzekuciju uskladištenih procedura na strani servera, izvršiti SQL naredbe ili vratiti direktno aplikaciji kompletne tabele iz baze. Command objekti sadrže tri metode koje se koriste za izvršavanje različitih naredbi nad bazom podataka:
ExecuteNonQuery. Izvršava naredbe koje ne vraćaju informacije aplikaciji već su usmerena ka bazi (INSERT, UPDATE, ili DELETE).
ExecuteScalar. Vraća aplikaciji pojediničnu vrednost pomoću SQL upita (na primer GROUP BY… HAVING struktura) .
ExecuteReader. Vraća rezultate pomoću DataReader objekta.
DataReader
DataReader objekt vrši direktan brzi pristup bazi. Ovaj objekt (recordset komponenta) drži konekciju aplikacije sa bazom otvorenom sve vreme i ima mogućnost učitavanja podataka iz baze u samo jednom prolazu bez iteracija (forward-only, read-only). Za razliku od ostalih ADO.NET komponenti nemoguće je napraviti direktnu instancu ovog objekta već se on vraća aplikaciji pomoću ExecuteReader metode objekta Command. Koristi se u slučajevima kada nije neophodno čuvati redove tabela u lokalnoj memoriji računara već ih logika aplikacije odmah koristi. Ovaj objekt dakle vraća jedan po jedan red tabele aplikaciji u direktnoj vezi aplikacije i baze i omogućava najbrži mogući transfer podataka. Nedostatak je što zahteva ekskluzivan pristup Connection objektu za vreme trajanja izvršavanja DataReader objekta.
DataAdapter
DataAdapter je klasa koja omogućava realizaciju diskonektovane ADO.NET arhitekture pristupa podacima. disconnected data access. Ovaj objekat realizuje sve elemente komunikacije između baze podataka i objekta DataSet. DataAdapter popunjava objekte DataTable ili DataSet sa podacima iz baze pozivom svoje Fill metode. Nakon manipulacije navedenim podacima smeštenim u lokalnoj memoriji DataAdapter pozivanjem svoje Update metode omogućava ažuriranje baze modifikovanim podacima.
DataAdapter nudi četiri svoje osobine koje reprezentuju odgovarajuće SQL naredbe:
SelectCommand. Sadrži tekst SQL naredbe (objekt) koji selektuje podatke iz baze podataka. SQL naredba se izvršava pozivom Fill metode popunjavajući objekte DataTable ili DataSet.
InsertCommand. Sadrži tekst SQL naredbe (objekt) koji insertuje jedan red u tabelu.
DeleteCommand. Sadrži tekst SQL naredbe (objekt) koji briše jedan red iz tabele.
UpdateCommand. Sadrži tekst SQL naredbe (objekt) koji ažurira podatke u bazi podataka.
Dodatno :
Od svih ADO.NET prostora imena (namespace-a), System.Data je najopštiji. Svaka aplikacija koja želi da pristupa podacima korišćenjem ADO.NET-a mora koristiti klase definisane ovim prostorom imena.
System.Data sadrži klase koje su zajedničke za sve data provider-e. U sledećoj tabeli prikazani su osnovni članovi System.Data prostora imena.
Klasa |
Značenje |
Constraint |
Predstavlja ograničenje primenjeno na DataColumn objekat |
DataColumn |
Predstavlja jednu kolonu DataTable objekta |
DataRelation |
Predstavlja roditelj/dete odnos između dva DataTable objekta |
DataRow |
Predstavlja jedan red u DataTable objektu |
DataSet |
Predstavlja lokalnu kopiju podataka u memoriji klijentskog računara koji se sastoji od niza povezanih DataTable objekata |
DataTable |
Predstavlja lokalnu kopiju tabele baze podataka |
DataTableReader |
Omogućava čitanje podataka iz DataTable objekta red po red |
DataView |
Predstavlja pogled na tabelu baze podataka i koristi se za sortiranje, filtriranje, pretraživanje i izmenu podataka |