Sunteți pe pagina 1din 20

Programarea Aplicațiilor

Windows – curs 10

Conf. dr. Cristian CIUREA


Departamentul de Informatică și Cibernetică Economică
Academia de Studii Economice București
cristian.ciurea@ie.ase.ro

1
Agenda

1. Lucrul cu baze de date (partea I)

2
Lucrul cu baze de date

ADO.NET (Active Data Object):


• este o tehnologie de acces la date care
disponibilizează clase, interfețe, structuri
și enumerări pentru accesul la baze de
date sub platforma .NET Framework.
• este parte din biblioteca de clase de bază
incluse în platforma .NET Framework.

3
Lucrul cu baze de date
ADO.NET (Active Data Object):
• este divizată în mod conceptual în
consumatori și furnizori de date;
consumatorii sunt aplicațiile care au
nevoie de acces la date, iar furnizorii
sunt componentele software care
implementează interfața pentru
furnizarea datelor către consumatori.

4
Lucrul cu baze de date
Accesul la comenzi SQL din C# se face
prin:
• interfața ODBC (Open Data Base
Connectivity); este relativ rapidă și
compatibilă cu o mulțime de baze de
date diferite;
• setul de date OLEDB (Object Linking
and Embedding Data Base); pentru
conectare la baze de date SQL Server
este relativ lent;

5
Lucrul cu baze de date
Accesul la comenzi SQL din C# se face
prin:
• SQL Native Client – doar dacă se
accesează baze de date SQL Server
începând cu versiunea 2005 și este
nevoie de noile caracteristici, precum
MARS (Multiple Active Result Sets),
criptare, tip de date XML, etc. În caz
contrar, se recomandă utilizarea
OLEDB/ODBC, cu mențiunea că OLEDB și
ODBC nu acceptă unele dintre noile
caracteristici ale SQL Server.
6
Lucrul cu baze de date

Obiectele prin care se implementează


accesul la o bază de date sunt:
• conexiunea;
• adaptorul;
• setul de date.
Stările unei conexiuni sunt:
• Connecting – în curs de conectare;
• Open – conexiune deschisă;
• Executing – în derularea unei tranzacții;
• Fetching – în timpul unei căutări în baza
de date.
7
Lucrul cu baze de date

Cei mai frecvenți furnizori de date sunt:


• SQL Server .NET Data Provider, folosește
pentru realizarea conexiunii un obiect de
tip SqlConnection definit în
namespace-ul System.Data.SqlClient;
• OLE DB .NET Data Provider, care
folosește un obiect de tip
OleDbConnection definit în
System.Data.OleDb;
• ODBC .NET Data Provider, folosește un
obiect OdbcConnection definit în
System.Data.Odbc. 8
Lucrul cu baze de date

Exemple de “connection strings”:


• BD SQL Server:
"Data Source = server; Initial Catalog
= baza; User ID = cristianciurea;
Password = ********";
• BD Access:
"Provider = Microsoft.ACE.OLEDB.12.0;
Data Source = student.accdb";

9
Lucrul cu baze de date

DataSet – container de date, care poate


conține mai multe obiecte DataTable, câte
unul pentru fiecare tabelă din baza de date.

DataSet dataSet = new DataSet();


DataTable tabela =
dataSet.Tables["student"];

10
Lucrul cu baze de date

DataAdapter – mediază schimburile de date


dintre un DataSet și baza de date, iar
principala metodă, Fill(dataSet, tabela),
încarcă cu date o tabelă dintr-un DataSet.

OleDbDataAdapter adaptor = new


OleDbDataAdapter("SELECT * FROM student",
conexiune);
DataSet dataSet = new DataSet();
adaptor.Fill(dataSet, "student");
11
Lucrul cu baze de date

Fiecare DataAdapter mediază transferul


de date între un singur obiect DataTable
din DataSet și rezultatul unei singure
interogări printr-o comandă SQL.

12
Lucrul cu baze de date

DataView – oferă un mod de vizualizare a


unui obiect DataSet, oferind posibilitatea
filtrării datelor dintr-o tabelă. Aceleași
tabele ale unui DataSet pot avea mai multe
vizualizări asociate, reprezentând puncte de
vedere diferite ale unor utilizatori.
DataTable tabela =
dataSet.Tables["student"];
DataView dv = new DataView(tabela);
dv.Sort = "nume";
dv.RowFilter = "forma='ZI'"; 13
Lucrul cu baze de date

DataReader – extrage un stream read-


only de date dintr-o sursă. Rezultatele
preluate în urma conectării la baza de date
sunt, fie procesate direct, utilizând o
componentă DataReader, fie sunt plasate
într-un DataSet pentru a fi combinate cu
alte informaţii şi pentru a fi prelucrate
ulterior.

14
Lucrul cu baze de date

Clasele de tip Command (SqlCommand și


OleDbCommand) sunt folosite pentru a
executa o comandă SQL sau proceduri
stocate. Exemple de constructori ale
acestor clase:
OleDbCommand cmd1 = new
OleDbCommand(“SELECT * from student”,
conexiune);
SqlCommand cmd2 = new SqlCommand();
cmd2.CommandText = “SELECT * from
student”;
cmd2.Connection = conexiune; 15
Lucrul cu baze de date

Obiectele de tip Command prezintă o lista


de parametri (Parameters) și pot emite o
tranzacție (Transaction) în cadrul unei
conexiuni (Connection).

16
Lucrul cu baze de date

conexiune.Open();
comanda.Transaction =
conexiune.BeginTransaction();
comanda.CommandText = "INSERT into student
values(?,?,?,?,?,?,?)";
comanda.Parameters.Add("cod",
OleDbType.Integer).Value = codstudent + 1;
comanda.Parameters.Add("nume",
OleDbType.Char, 10).Value = nume;
comanda.ExecuteNonQuery();
comanda.Transaction.Commit();
conexiune.Close(); 17
Lucrul cu baze de date

Comenzile de acces direct la baza de date


sunt de 3 tipuri:
• ExecuteReader, care întoarce o colecție
de linii de date, accesibile linie cu linie;
• ExecuteScalar, care returnează o
singură valoare, de tip generic object;
• ExecuteNonQuery, care nu returnează
nimic, dar execută actualizările asupra
bazei de date.

18
Lucrul cu baze de date

Exemple:
OleDbCommand comanda = new
OleDbCommand(sql, conexiune);
comanda.ExecuteNonQuery();

OleDbDataReader reader =
comanda.ExecuteReader();

cod = Convert.ToInt32(
comanda.ExecuteScalar());
19
Bibliografie

[1] I. Smeureanu, M. Dârdală, A. Reveiu – Visual


C# .NET, Editura CISON, București, 2004.
[2] C. Petzold – Programming Microsoft Windows
with C#, Microsoft Press, 2002.
[3] L. O’Brien, B. Eckel – Thinking in C#, Prentice
Hall.
[4] J. Richter – Applied Microsoft .NET Framework
Programming, Microsoft Press, 2002.
[5] http://acs.ase.ro/paw

20

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