Sunteți pe pagina 1din 16

Formularele corelate cu o sursă de date (DataSet) vizează următoarele operații:

1. Încărcarea datelor, din baza de date, în DataSet:

Baza de date
Date

User
Client Server

2. Editarea datelor din DataSet:

Actualizări

User
Client

3. Salvarea setului de date în baza de date:

Date
Baza de date

User
Client Server

conf.dr. Adrian Cozgarea


- asigură legarea controalelor (text box, combo box etc.) la o sursă de date (ex:DataTable)

 „Control legat” afișează și/sau editează date din sursa de date (DataTable)

Control BindingSource Sursa de date


(text box, combo box etc.) (DataTable, DataView etc.)

 Controalele legate la același BindingSource = controale sincronizate  afișează/editează


valori ale aceleiași înregistrări(tuplu)

conf.dr. Adrian Cozgarea


conf.dr. Adrian Cozgarea
= o soluție generală pentru legarea controalelor la diferite surse de date (DataTable,
DataView, ArrayList etc.)
Proprietăţi:
✓ DataSource – sursa de date complexă (un DataSet)
✓ DataMember – element al sursei la care va fi legat conectorul (DataTable)
✓ Current, List, Sort, Filter
Metode:
✓ EndEdit() – salvează datele din controale legate în rândul curent al sursei de date
(DataTable). Necesară numai pt. controale simple (<> DataGridView).
✓ AddNew(), MoveFirst(), MoveLast(), MoveNext(), MovePrevious(), Remove(),
RemoveCurrent()
 BindingSource salvează/scrie datele, din controale în rândul curent (ex. DataRow)
- implicit/automat, la trecerea (move) pe un alt rând
- explicit, la invocarea metodei EndEdit()
Evenimente:
✓ AddingNew – util în formularele master-detail, pentru memorarea (prin EndEdit)
rândului părinte înainte de adăugarea unui rând copil (dacă master-ul nu este un
DataGrid)
✓ CurrentChanged, DataError
conf.dr. Adrian Cozgarea
Zona componentelor
Orice componentă devine variabilă
membru (atribut) a formularului

conf.dr. Adrian Cozgarea


conf.dr. Adrian Cozgarea
conf.dr. Adrian Cozgarea
 După completarea sursei de date (prop. DataSource + DataMember) a obiectului
BindingSource, VisualStudio generează automat:
 o variabilă aferentă setului de date
 o variabilă corespunzătoare adaptorului

Aceste variabile pot fi


folosite ca atare în aplicație

 codul necesar încărcării tabelului sursă (DataTable) cu datele din baza de date:

conf.dr. Adrian Cozgarea


- utile pentru sincronizarea rândurilor din tabele corespondente (părinte-copil)
Etape:
1. Se definește un BindingSource aferent tabelului părinte.
2. Se adaugă un alt BindingSource, aferent tabelului copil, pentru care:
 DataSource = primul BindingSource
 DataMember = relația cu tabelul părinte

conf.dr. Adrian Cozgarea


- prin intermediul proprietății DataBindings (disponibilă în fereastra Properties)

Etape:
 stabilirea acelei proprietăți a controlului (de regulă, Text) care va afișa/edita date din
sursa de date.
 selectarea câmpului din tabelul sursă care va furniza date controlului.

conf.dr. Adrian Cozgarea


conf.dr. Adrian Cozgarea
1. Sursa actualizată de control
DataBindings:
 SelectedValue (~cheia primară):
 FacturaBindingSource.CodFurnizor

2. Sursa valorilor din lista derulantă


DataSource : FurnizorBindingSource
DisplayMember : Denumire
ValueMember : Cod (~cheia primară)

conf.dr. Adrian Cozgarea


- efectuează operații elementare asupra datelor dintr-un BindingSource:
 navigare pe înregistrări
 adăugare
 ștergere etc.

BindingSource: FacturaBindingSource

conf.dr. Adrian Cozgarea


 afișarea și/sau editarea datelor în format tabelar: coloane (prop. Columns), rânduri (pro.
Rows) și celule (prop. Cells)
 formatare coloane (ex. Columns→ColumnType)
 formatare rânduri (ex. prop. AlternatingRowsDefaultCellStyle)
 formatare celule (ex. prop. DefaultCellStyle)

conf.dr. Adrian Cozgarea


1. DataSource – sursa de date:
✓ simplă: BindingSource, DataTable, ArrayList
✓ complexă: DataSet
2. DataMember – conține denumirea unui DataTable atunci când DataSource
conține o sursă complexă (DataSet)

conf.dr. Adrian Cozgarea


Properties: Columns⇨ColumnType:
✓casete text (DataGridViewTextBoxColumn)
✓butoane (DataGridViewButtonColumn)
✓combo-box(DataGridViewComboBoxColumn) etc.

 Nu pot fi definite coloane


calculate (Valoare=Cantitate*Pret)!

conf.dr. Adrian Cozgarea

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