Professional Documents
Culture Documents
Ce ne propunem astzi?
n laboratorul de astzi ne propunem s realizm o aplicaie de gestiune a datelor
studenilor, date care sunt stocate ntr-o baz de date Microsoft Access (Figura 1).
Laborator 5 MTP
Atenie!
Se recomand ca n numele tabelelor i a cmpurilor dintr-o baz de date s nu
folosii caracterul spaiu! Astfel, vei evita apariia erori la legarea controalelor
la cmpurile bazei de date i la operaiile de salvare a datelor n baza de date.
n continuare se crea o aplicaie Visual C# .NET de tip Windows Forms Application care va
conine o fereastr de dimensiuni fixe precum cea din Figura 1.
Fereastra va conine un meniu care va implementa aciunile din Figura 3 i o bar de unelte
care va permite navigarea printre nregistrrile din baza de date i apelarea rapid a
aciunilor din meniu.
Nr_matricol: TextBox.
Nume: TextBox.
Prenume: TextBox
Nota 1, Nota 2, Nota 3, Nota 4, Nota 5: ComboBox (cu valori posibile: 5, 6, 7, 8, 9, 10).
Obiectul de tip OleDbConnection, permite conectarea la baza de date prin intermediul stringului de conectare:
3
Laborator 5 MTP
Obiectul de tip OleDbCommand permite efectuarea unei interogri asupra bazei de date, dar
i executarea unor comenzi SQL NonQuery cum ar fi INSERT, UPDATE, DELETE etc.:
comanda = new OleDbCommand(sql, conexiune);
Un obiect OleDbCommandBuilder genereaz automat comenzile necesare pentru ca schimbrile fcute ntr-un tabel DataTable (sau ntr-un DataSet) s se reflecte i n baza de date
din care a fost ncrcat DataTable-ul (DataSet-ul). Pentru ca un adaptor sa poat aplica
schimbrile fcute ntr-un DataTable (sau DataSet) asupra bazei de date (metoda Update),
este necesar asocierea lui cu un obiect OleDbCommandBuilder. Asocierea dintre obiectul
OleDbCommandBuilder i adaptor se poate face prin intermediul constructorului:
construire_comenzi = new OleDbCommandBuilder(adaptor);
prima stare, n care se va putea naviga printre nregistrrile din baza de date, acestea
putnd fi doar vizualizate nu i modificate. Butonul de Adugare va fi activ, iar cele
de Salvare i Renunare vor fi inactive. Butoanele Editare, tergere i Cutare vor fi
active doar dac exist nregistrri n baza de date. (Figura 4a)
a doua stare se instaureaz atunci cnd se apas Adugare sau Editare. Se vor
dezactiva controalele de navigare i comenzile Adugare, Editare, tergere, Cutare,
singurele aciuni posibile fiind Salvare sau Renunare (Figura 4b).
(a)
(b)
Figura 4. Starea 1 (a), respectiv starea 2 (b)
Editare singura aciune care se va petrece la editare va fi cea de trecere din starea
1 n starea 2.
BindingSource1.RemoveCurrent();
BindingSource1.EndEdit();
adaptor.Update(dt);
BindingSource1.CancelEdit();
Laborator 5 MTP
n continuare se va implementa fereastra pentru cutarea unui student (Figura 6). Aici,
controlul ComboBox corespunztor numelui cmpului va fi completat prin cod cu numele
tuturor cmpurilor din tabelul Studenti.
Figura 7. Valori luate de cele dou controale ComboBox n vederea efecturii unei cutri
Fereastra va conine un control DataGridView, care iniial va afia toate nregistrrile din
baza de date. n urma apsrii butonului Afiare se vor afia n DataGridView doar
nregistrrile care respect condiiile precizate (cmp = valoare sau cmp like valoare).
Pentru ncrcarea controlului DataGridView cu toate datele din tabela bazei de date se va
proceda n mod similar exemplului de mai sus cu meniunea c obiectele de tip
BindingNavigator, BindingSource i OleDbCommandBuilder nu mai sunt necesare.
Pentru ncrcarea datelor din DataTable n DataGridView se va proceda n felul urmtor:
DataGridView1.DataSource = dt;
DataGridView1.ReadOnly = true;
Sfaturi utile
1. Pentru a asigura comutarea ntre cele dou stri complementare se
recomand crearea unei funcii de dezactivare/activare a controalelor, care
are ca i parametru o variabil boolean, corespunztoare strii.
2. Pentru includerea unei confirmri suplimentare la operaia de tergere, se
recomand renunarea la aciunea implicit pe care o are butonul de tergere
n cadrul BindingNavigator-ului i editarea manual a codului necesar
tergerii.
3. n fereastra de cutare, pentru completarea numelor tuturor cmpurilor din
tabelul Studenti n controlul ComboBox se recomand parcurgerea prin
intermediul unei bucle foreach a tuturor coloanelor din tabelul creat i
adugarea prin cod a denumirilor acestora.
4. Se recomand transmiterea obiectului dt din fereastra principala ctre
fereastra de cutare prin constructorul acesteia.
Cu ce ne-am ales?
Prin aplicaia dezvoltat am nvat s realizm aplicaii desktop pentru lucrul cu
baze de date i s implementm principalele operaii care apar n aplicaiile cu
baze de date: adugare, modificare, tergere sau cutare. Aplicaiile cu baze de
date sunt utile i necesare n toate domeniile. Aplicaia dezvoltat opereaz asupra
unei baze de date Access dar tehnologia OLEDB poate fi aplicat i altor baze de
date precum Oracle, Microsoft SQL Server, MySQL etc.
Bibliografie
[1] Visual C# Resources, http://msdn.microsoft.com/enus/vstudio/hh341490%28v=msdn.10%29.aspx