Extras din curs
ADO.Net
ADO.Net este o multime de biblioteci orientate obiect care permit interactiunea cu sistemele
de stocare a informatiilor. De obicei, aceste sisteme sunt reprezentate de bazele de date,
dar pot fi si fisiere text, fisiere XML, fisiere Excel, etc. In continuare ne vom ocupa de
interactiunea cu bazele de date.
Data Provider
ADO.Net permite interactiunea cu diverse tipuri de baze de date. Totusi, nu exista un singur
set de clase care sa pemita acest lucru. Fiecare tip de baza de date foloseste un protocol
specific protocoale, deci trebuie sa gasim o metoda pentru a folosi protocolul corect in
fiecare caz. Unele sisteme mai vechi folosesc protocolul ODBC, altele mai noi, folosesc
protocolul OleDb, etc.
ADO.Net furnizeaza metode de comunicare cu fiecare sistem de stocare a informatiilor,
fiecare protocol fiind implementat in cate o biblioteca. Aceste biblioteci sunt numite Data
Providers si poarta numele protocolului sau sistemului cu care permit interactiunea. Tabelul
urmator prezinta o lista a acestor provideri.
Provider Prefix API Descriere
ODBC Data Provider Odbc
Data Sources care folosesc protocolul ODBC
(in mod normal baze date mai vechi).
OleDb Data Provider OleDb
Data Sources care expun interfata OleDb
(Access, Excel, etc.)
Oracle Data Provider Oracle Pentru bazele de date Oracle.
SQL Data Provider Sql Pentru Microsoft Sql Server si MSDE
Borland Data Provider Bdp
Ofera acces la mai multe tipuri de baze de
date cum ar fi Interbase, SQL Server, IBM
DB2 si Oracle.
Fig. 1: Data Providers
Obiectele ADO.Net
SqlConnection
Primul lucru pe care un programator trebuie sa-l faca atunci cand vrea sa comunice cu o
baza de date este sa deschide o conexiune cu aceasta. Conexiunea "spune" celorlalte
obiecte cu ce baza de date lucreaza. Conexiunea se ocupa de logica low-level asociata
protocolului. Acest lucru usureaza foarte mult munca unui programator, acesta neavand
decat sa instantieze obiectul conexiune, sa deschida conexiunea, sa faca operatiile de care
are nevoie asupra bazei de date si apoi sa inchida conexiunea. Datorita modului in care
celelalte clase ADO.Net sunt implementate uneori este nevoie de chiar mai putin decat atat.
Desi folosirea conexiunilor este mult simplificata in ADO.Net, programatorul trebuie sa le
inteleaga foarte bine pentru a lua deciziile corecte. O conexiune este o resursa foarte
importanta. Daca aplicatia va fi folosita pe o singura masina, asupra unei singure baze de
date, importanta acestei resurse este mai putin clara. Dar daca este vorba de o aplicatie
enterprise, folosita simultan de multi utilizatori asupra aceleiasi baze de date importanta
conexiunii este mult mai clara. Fiecare conexiune reprezinta overhead pentru server si nu
exista nici un server care sa suporte overhead infinit.
Un obiect SqlConnection este la fel ca orice alt obiect C#. De cele mai multe ori declararea
si instantierea se face in acelasi timp:
SqlConnection sqlConn = new SqlConnection( “Data Source=(local);Initial
Catalog=Northwind;Integrated Security=SSPI");
// Conectarea folosind un cont anume
SqlConnection sqlConn1 = new SqlConnection( "Data
Source=DatabaseServer;Initial Catalog=Northwind;User
ID=YourUserID;Password=YourPassword");
//sau pentru OleDb
OleDbConnection oleDbConn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDatabase.mdb");
Obiectul SqlConnection de mai sus este instantiat folosind un constructor care primeste ca
parametru un string. Acest argument este stringul de conectare.
Parametru al stringului de
conectare
Descriere
Data Source
Identifica masina server. Poate sa fie masina
locala, numele unui computer din domeniu
sau o adresa IP.
Initial Catalog Numele bazei de date.
Integrated Security
Setat la valoarea SSPI pentru a face
conexiunea folosind contul windows al
utilizatorului.
User ID
Numele de utilizator configurat pe serverul
SQL.
Password Parola atasata utilizatorului de la User ID.
Fig. 2: Stringurile de conectare contin perechi de tipul cheie/valoare despre modul in care se va face
conectarea la baza de date.
Scopul instantierii unui obiect de tip SqlConnection este ca alte obiecte ADO.Net sa poata
lucra cu baza de date. Alte obiecte, cum ar fi SqlDataAdapter si SqlCommand, au
constructori care primesc obiectul conexiune ca parametru. Atunci cand se lucreaza cu o
baza de date trebuie urmati pasii:
1. Instantierea unui obiect SqlConnection;
2. Deschiderea conexiunii;
3. Trimiterea conexiunii ca parametru altor obiecte ADO.Net;
4. Realizarea operatiunilor asupra bazei de date;
5. Inchiderea conexiunii.
Conținut arhivă zip
- Conectare C la MySQL Server.pdf