Walkthrough

După selectarea comenzilor din fereastra Surse de date, creați comenzi legate de date tragând elementele pe formular.

Creați controale bazate pe date pentru datele clienților și pentru comenzi

Trageți principalul nod Clients din fereastra Surse de date în Form1.







Legat de aceste controale cu descrierea mărcilor afișate pe formularul cu componenta TableAdapterManager - elemente de suprafață (BindingNavigator) pentru mutarea înregistrărilor. Setul de date tastat apare în zona componentei. TableAdapter și BindingSource.

Trageți nodul Comenzi asociate din fereastra Surse de date pe Form1.

Nodul Comenzi legate este localizat sub nodul Fax Tabel de clienți și este un copil al nodului Clienți. Comenzi noduri. care este egal cu nodul Clienti. reprezintă toate ordinele din tabel. Comenzi noduri. care este un copil al nodului Clienti. reprezintă ordine conexe.

Un control DataGridView și un BindingNavigator sunt afișate pe formular pentru a naviga prin înregistrări. Panoul Component afișează TableAdapter și Source Binding.

Salvați modificările setului asociat de tabele de date în baza de date prin apelarea TableAdapterManager.UpdateAll metoda și trece numele setului de date care conține tabele aferente. De exemplu, executați metoda TableAdapterManager.UpdateAll (NorthwindDataset) pentru a trimite actualizări ale tuturor tabelelor din NorthwindDataSet într-o bază de date internă.

După eliminarea elementelor din fereastra Surse de date, evenimentul Form_Load adaugă automat un cod pentru a popula fiecare tabel (metode TableAdapter.Fill). Codul este, de asemenea, adăugat la evenimentul clic al obiectului Save BindingNavigator. Pentru a salva datele din setul de date înapoi în baza de date (metoda TableAdapterManager.UpdateAll).

Codul de salvare generat conține, de asemenea, un șir care solicită metoda CustomersBindingSource.EndEdit. În particular, aceasta numește metoda EndEdit a primei surse de legare. adăugat la formular. Cu alte cuvinte, acest cod este creat numai pentru primul tabel tras din fereastra Surse de date din formular. Apelul la EndEdit captează toate modificările curente pentru toate comenzile legate în mod curent de date. Prin urmare, dacă controlul legat de date este încă în focalizare și faceți clic pe butonul Salvare. toate modificările în așteptare din acest control sunt angajate înainte ca acestea să fie efectiv salvate (metoda TableAdapterManager.UpdateAll).







Constructorul adaugă codul BindingSource.EndEdit numai la primul tabel plasat pe formular. Deci, trebuie să adăugați o linie de cod care apelează metoda BindingSource.EndEdit pentru fiecare tabelă legată din formular. În acest ghid, aceasta înseamnă că trebuie să adăugați un apel la metoda OrdersBindingSource.EndEdit.

Actualizarea codului pentru a efectua modificări în tabelele legate înainte de salvare

Adăugați o linie de cod pentru a apela metoda OrdersBindingSource.EndEdit după linia care apelează metoda CustomersBindingSource.EndEdit. Codul din butonul Salvează ar trebui să arate cam așa:

În plus față de efectuarea modificărilor la tabelul copil asociat înainte de a stoca date în baza de date, este posibil să trebuiască să angajeze și înregistrările inițiale create anterior înainte de a adăuga noi înregistrări copil în baza de date. Cu alte cuvinte, este posibil să fie necesar să adăugați în baza de date un nou registru părinte (client) înainte ca constrângerea cheii străine să vă permită să adăugați înregistrări copil (comenzi) la setul de date. Pentru a face acest lucru, puteți utiliza evenimentul copil BindingSource.AddingNew.

Remedierea noilor înregistrări părinte poate fi sau nu necesară, depinde de tipul de control utilizat pentru legarea la sursa de date. În acest ghid, utilizați controale separate pentru a lega tabelul părinte, deci aveți nevoie de un cod suplimentar pentru a angaja un nou parinte. Dacă înregistrările părinte au fost afișate într-un control complex cu legare, cum ar fi un DataGridView. Acest apel suplimentar la EndEdit al înregistrării părinte nu ar fi necesar. Acest lucru se datorează faptului că funcționalitatea de bază a legării la datele controlului se ocupă de fixarea noilor înregistrări.

Adăugarea unui cod pentru a comenta înregistrări părinte într-un set de date înainte de a adăuga noi înregistrări copil

Creați un handler de evenimente pentru evenimentul OrdersBindingSource.AddingNew.

Deschideți Form1 în designer, faceți clic pe OrdersBindingSource în zona componentă, selectați Evenimente din fereastra Proprietăți. apoi faceți dublu clic pe evenimentul AddingNew.

Adăugați o linie de cod manipulatorului evenimentului pentru a apela metoda CustomersBindingSource.EndEdit. Codul din handler-ul de evenimente OrdersBindingSource_AddingNew ar trebui să arate cam așa:

Modificările ierarhice sunt activate și dezactivate prin setarea actualizării ierarhice a setului de date. În mod implicit, sunt incluse actualizările ierarhice, deci în acest ghid nu este necesar să modificați valoarea proprietății Actualizare ierarhică.

Procedura de verificare a permisibilității actualizărilor ierarhice

Deschideți setul de date din Designerul de date. dând dublu clic pe fișierul NorthwindDataSet.xsd din Solution Explorer.

Selectați un spațiu gol în zona de proiectare.

Găsiți proprietatea Actualizare ierarhică în fereastra de proprietăți și asigurați-vă că este setată la True.

Valoarea proprietății Actualizare ierarhică determină dacă codul TableAdapterManager generat și logica pentru executarea actualizărilor ierarhice sunt incluse. Când setați HierarchicalUpdate la True, este creat un TableAdapterManager; La instalarea pentru HierarchicalUpdate, valoarea False TableAdapterManager nu este creată.







Articole similare

Trimiteți-le prietenilor: