Ai învățat deja cum să umpli un ListBox cu date dintr-o bază de date SQLite. În această lecție ne extindem cunoștințele legând un TextBox de acest ListBox. Această legătură îți permite să modifici, să ștergi sau să adaugi valori noi. În plus, îți vom arăta cum să monitorizezi selecția din ListBox și să afișezi valoarea acesteia în TextBox. Astfel poți face aplicația ta mai interactivă și prietenoasă cu utilizatorul.
Cele mai importante concluzii
- Legi un TextBox de un ListBox pentru a afișa selecția în mod dinamic.
- Prin utilizarea unei baze de date SQLite poți stoca și recupera datele tale în mod persistent.
- Implementăm măsuri de prevenire a erorilor pentru a evita excepțiile nedorite.
Ghid pas cu pas
Mai întâi, vom arunca o privire asupra modului în care putem stabili legătura între TextBox-ul nostru și ListBox:
1. Interogarea selecției din ListBox
Pentru a monitoriza selecția din ListBox, trebuie să adăugăm cod pentru evenimentele corespunzătoare. Mai întâi, trebuie să știm care element din ListBox este în prezent selectat.

Pentru aceasta, copiem SQLiteCommand din metoda cu care am umplut ListBox-ul. Adăugăm acest cod în locul potrivit și îl completăm cu o comandă SQL care recuperează selecția din baza noastră de date. Comanda SQL ar putea arăta astfel: SELECT ID, MarcaAuto FROM MărciAuto WHERE ID = @ID, unde @ID este un loc rezervat pentru parametrul nostru.
2. Adăugarea parametrului la interogarea SQL
Următorul pas este să setăm parametrul pentru interogarea SQL. Aici utilizăm cheia primară (Primary Key) pentru a selecta marca auto corectă.
Comanda este apoi optimizată prin obținerea ID-ului mărcii auto selectate din ListBox. Acest lucru se realizează prin apelul listBox.SelectedValue. Acum adăugăm acest parametru la interogare.

3. Crearea și completarea unei DataTable
Acum, când avem comanda SQL, trebuie să creăm o DataTable pentru a procesa interogările. O denumim myDataTable și apoi adăugăm SQLiteDataAdapter pentru a inițializa rezultatele interogării noastre SQL.

Odată ce DataTable este completată, putem umple TextBox-ul cu valoarea mărcii auto selectate.

4. Afișarea mărcii auto selectate în TextBox
Pentru a seta valoarea din DataTable în TextBox, apelăm prima intrare a DataTable-ului. Folosim myDataTable.Rows[0]["MarcaAuto"].ToString() și setăm rezultatul în TextBox.
5. Implementarea gestionării erorilor
Pentru a ne asigura că nu apar erori în timpul executării aplicației, trebuie să introducem gestionarea erorilor. Acest lucru se face verificând înainte de efectuarea interogării dacă un element a fost selectat în ListBox.
Aici folosim o condiție simplă: dacă myListBox.SelectedValue == null, anulăm metoda. Această măsură asigură că nu primim referințe nule și că aplicația rămâne stabilă.

6. Efectuarea testelor funcționale
După implementarea pașilor menționați mai sus, este important să testăm aplicația. Pornește programul și verifică dacă la start prima intrare din ListBox este afișată automat în TextBox.

Dacă acum schimbi între diferitele mărci auto, ar trebui să observi că TextBox-ul se actualizează dinamic pentru a reprezenta valoarea corespunzătoare.

Acum, că ai înțeles conceptele de bază și codul pentru legarea TextBox-ului de ListBox, poți optimiza și mai mult aplicația ta. În pasul următor, vom învăța cum să adaugi mărci auto noi în baza de date printr-un buton.
Rezumat – ListBox și TextBox în C#: Legarea dinamică a datelor
În acest ghid, ai învățat cum să legi un TextBox de un ListBox și să implementezi interactivitatea dublă. Acest concept îți deschide noi posibilități pentru a crea aplicații pentru utilizatori care sunt atât informative cât și prietenoase.
Întrebări frecvente
Ce fac dacă TextBox-ul nu se actualizează?Verifică dacă ListBox-ul returnează valoarea corectă și dacă DataAdapter-ul a fost configurat corect.
Cum adaug o marcă auto nouă?Vom trata acest subiect în următorul video, adăugând un buton care îți va permite să atașezi mărci auto la baza de date.
De ce transformăm ieșirile DataTable ca string?Pentru a ne asigura că valoarea din TextBox este afișată corect ca text, trebuie să o convertim într-un string.