Sunteți pe pagina 1din 20

= componente prin care un DataSet este legat (binding) la o sursă de date

externă.
Asigură:
• conectarea directă la o bază de date.
• popularea (fill) setului de date (client) cu date din baza de date (server);
• salvarea (update) modificărilor efectuate asupra setului de date (client) în
baza de date (server).

DataSet Furnizor de date


DataTable DataAdapter

DataColumn Connection
Sursa de date
DataRow Command

Este generat de DataSet Designer


DataRelation (∉ ADO.NET)

Arhitectura (restrânsă) ADO.NET

conf.dr. Adrian Cozgarea


Subset ADO.NET Utilizări
System.Data.SqlClient Aplicaţii care accesează şi exploatează baze de date
SQLServer
System.Data.OracleClient Pentru aplicaţii care utilizează baze de date Oracle

System.Data.OleDb Pentru baze de date MSAccess sau versiuni vechi ale


SQLServer
System.Data. Odbc Pentru orice tip de bază de date (inclusiv fişiere text,
Excel etc.) pentru care există driver ODBC (Open
Database Connectivity)

conf.dr. Adrian Cozgarea


Clase frecvent utilizate (tratate în paginile următoare):
• DbConnection, DataAdapter și TableAdapterManager

Clase mai puțin utilizate:


• Command – reprezintă o comandă (SQL) ce se execută asupra bazei de
date;
• DataReader – returnează un flux de date unidirecțional dinspre baza de
date, ce poate fi doar citit.
• Transaction – înscrie un set de obiecte Command într-o tranzacție

conf.dr. Adrian Cozgarea


• deschide un canal de comunicație între aplicaţie şi baza de date
• este specializată pe tipuri de furnizori de date (SQLConnection,
OleDbConnection etc.)
• de cele mai multe ori nu este utilizată/apelată direct, dar reprezintă
un element de bază al clasei DataAdapter (descrisă în continuare)

Proprietăți:
✓ ConnectionString - conţine toate informaţiile necesare realizării conexiunii
la baza de date

Metode:
✓ Open() - deschide conexiunea (baza de date devine accesibilă)
✓ Close() - închide conexiunea și eliberează toate resursele ocupate.

conf.dr. Adrian Cozgarea


• realizează comunicarea (bidirecțională) între DataSet și sursa de date
(mai precis între un DataTable și un tabel din baza de date)
• specializată/derivată pe furnizori de date (SqlDataAdapter, OleDBDataAdapter etc.).
Proprietăţi: obiecte de tip Command (SelectCommand, InsertCommand,
UpdateCommand, DeleteComand) utilizate la citirea/actualizarea datelor din
baza de date
Metode:
✓ Fill(dt As DataTable) - încarcă un tabel din DataSet cu datele (din b.d.)
returnate de SelectCommand
✓ Update(dt As DataTable) - salvează datele dintr-un DataTable în baza de date,
prin aplicarea comenzilor Insert, Update, Delete (în funcție de starea
rândurilor).
Fill Select
DataSet DataAdapter Baza de date
Update Insert/Udate/Delete

Schema de principiu a unui DataAdapter


conf.dr. Adrian Cozgarea
- utilizabilă numai pentru DataSet-uri generate prin DataSet Designer!
- asigură salvarea datelor din întregul set de date în tabelele bazei date,
în ordinea impusă de restricțiile referențiale.
Proprietăți – clasa dispune de câte o proprietate TableAdapter, aferentă
fiecărui tabel actualizabil din setul de date.
Metode:
✓ UpdateAll(dataSet) – actualizează baza de date sursă (pe server) cu
rândurile modificate în toate tabelele setului de date (v. parametrul
dataSet). Operația este realizată prin invocarea metodei Update() a
tuturor adaptoarelor din DataSet.

conf.dr. Adrian Cozgarea


• operație posibilă prin intermediul asistenților VisualStudio
• rezultatul final constă într-un un set de date tipizat, cu elemente
generate din baza de date:
– tabele,
– adaptoare atașate tabelelor,
– relații între tabele.

Set de date tipizat  toate elementele sunt definite nu ca instanțe ale


claselor sistem (DataSet, DataTable, DataAdapter, DataRow etc.), ci drept
clase derivate din acestea.

Etape:
conf.dr. Adrian Cozgarea
• opţiunea Project->Add New DataSource, din meniu

conf.dr. Adrian Cozgarea


– în fereastra Data Source Configuration Wizard, se selectează
DataBase

conf.dr. Adrian Cozgarea


• implicit - DataSet

conf.dr. Adrian Cozgarea


• se poate selecta o conexiune deja existentă sau se creează una
nouă

conf.dr. Adrian Cozgarea


- alegerea furnizorului de date (SQL Server, Access etc.)

SQL Server

MS Access
conf.dr. Adrian Cozgarea
s-win-sql-cig este disponibil numai din domeniul ase.ro!
Pentru SQLServer local, se folosește . (punct) sau numele calculatorului.

MS Access
SQL Server
conf.dr. Adrian Cozgarea
Dacă se alege copierea bazei de date în proiect, atunci această copie va fi refăcută la
fiecare execuție (în regim de testare/depanare) a aplicației ( datele actualizate în
sesiunile anterioare se vor pierde) !

conf.dr. Adrian Cozgarea


conf.dr. Adrian Cozgarea
Șirul de conectare va putea fi accesat ulterior prin opțiunea (din meniu):
Project->Application properties->Settings
sau prin cod:
My.Settings.Item(<numeȘir>)

conf.dr. Adrian Cozgarea


Denumirea setului de date
(în funcție de care, acesta poate fi
referit/accesat în aplicație

conf.dr. Adrian Cozgarea


✓ Noul set de date este disponibil în Solution Explorer și poate fi
deschis și modificat prin DataSet Designer

Fișierul aferent
setului de date.

conf.dr. Adrian Cozgarea


DataTables

DataRelation

DataAdapters

conf.dr. Adrian Cozgarea


 Setul de date poate fi accesat/referit după denumirea sa (v. pasul 6 de mai sus), iar
adaptoarele (inclusiv managerul) sunt grupate într-un spațiu de nume cu denumirea:
DenumireSetDate+TableAdapters
1. La nivelul clasei Form, se definesc atribute (variabile de memorie) pentru setul de
date și adaptoare: Setul de date Spațiul de nume
Private ds As TDAIGDataSet aferent adaptoarelor
Private adptFz As TDAIGDataSetTableAdapters.FurnizorTableAdapter
Private tblManager As TDAIGDataSetTableAdapters.TableAdapterManager
2. În procedura atașată evenimentului Load al formularului, se inițializează setul de
date, adaptoarele, și se seteaza prop. de tip adaptor pentru TableManager:
ds = New TDAIGDataSet
adptFz = New TDAIGDataSetTableAdapters.FurnizorTableAdapter
tblManager = New TDAIGDataSetTableAdapters.TableAdapterManager
tblManager.FurnizorTableAdapter = adptFz
3. În procedura atașată unui buton (Fill), se încarcă setul de date:
adptFz.Fill(ds.Furnizor)
4. Salvarea setului de date în baza de date, se realizează printr-o procedură atașată
unui alt buton (Salveaza):
tblManager.UpdateAll(ds)
conf.dr. Adrian Cozgarea

S-ar putea să vă placă și