Hai già imparato come riempire una ListBox con dati da un database SQLite. In questa lezione amplieremo le nostre conoscenze collegando una TextBox a questa ListBox. Questo collegamento ti consente di modificare, eliminare o aggiungere nuovi valori. Inoltre, mostreremo come monitorare la selezione nella ListBox e visualizzarne il valore nella TextBox. In questo modo puoi rendere la tua applicazione più interattiva e user-friendly.
Principali intuizioni
- Colleghi una TextBox a una ListBox per visualizzare dinamicamente la selezione.
- Utilizzando un database SQLite puoi memorizzare e recuperare in modo persistente i tuoi dati.
- Implementiamo misure per la prevenzione degli errori per evitare eccezioni indesiderate.
Guida passo passo
Per prima cosa, diamo un'occhiata a come possiamo stabilire il collegamento tra la nostra TextBox e la ListBox:
1. Interrogare la selezione nella ListBox
Per monitorare la selezione nella ListBox, dobbiamo aggiungere codice per gli eventi corrispondenti. Prima di tutto, dobbiamo sapere quale elemento è attualmente selezionato nella ListBox.

A tal fine, copiamo il SQLiteCommand dal metodo con cui abbiamo riempito la ListBox. Incolliamo questo codice nel posto giusto e lo completiamo con un comando SQL che recupera la selezione dal nostro database. Il comando SQL potrebbe apparire così: SELECT ID, MarcaAuto FROM MarcheAuto WHERE ID = @ID, dove @ID è un segnaposto per il nostro parametro.
2. Aggiungere parametri alla query SQL
Il passaggio successivo è impostare il parametro per la query SQL. Qui utilizziamo la chiave primaria (Primary Key) per selezionare la marca auto corretta.
Il comando viene quindi ottimizzato estraendo l'ID della marca auto selezionata dalla ListBox. Questo avviene tramite chiamata a listBox.SelectedValue. Ora aggiungiamo questo parametro alla query.

3. Creazione e riempimento di una DataTable
Ora che abbiamo il comando SQL, dobbiamo creare una DataTable per elaborare le query. Denominiamo questa DataTable myDataTable e quindi aggiungiamo il SQLiteDataAdapter per inizializzare i risultati della nostra query SQL.

Una volta che la DataTable è riempita, possiamo popolare la TextBox con il valore della marca auto selezionata.

4. Visualizzazione della marca auto selezionata nella TextBox
Per impostare il valore dalla DataTable nella TextBox, recuperiamo il primo elemento della DataTable. Utilizziamo myDataTable.Rows[0]["MarcaAuto"].ToString() e impostiamo il risultato nella TextBox.
5. Implementare la gestione degli errori
Per garantire che non si verifichino errori durante l'esecuzione dell'applicazione, dobbiamo introdurre una gestione degli errori. Ciò avviene controllando prima di eseguire la query se un elemento è stato selezionato nella ListBox.
Qui utilizziamo una semplice condizione: se myListBox.SelectedValue == null, interrompiamo il metodo. Questa misura garantisce che non otteniamo riferimenti nulli e che l'applicazione rimanga stabile.

6. Esegui test funzionali
Dopo aver implementato i passaggi sopra menzionati, è importante testare l'applicazione. Avvia il programma e verifica se all'avvio il primo elemento nella ListBox viene automaticamente visualizzato nella TextBox.

Se ora cambi tra le varie marche auto, dovresti vedere che la TextBox si aggiorna dinamicamente per rappresentare il valore corrispondente.

Ora che hai compreso le basi e il codice per il collegamento di TextBox e ListBox, puoi ottimizzare ulteriormente la tua applicazione. Nel passo successivo impareremo come inserire nuove marche auto nel database tramite un pulsante.
Riepilogo – ListBox e TextBox in C#: collegare i dati in modo dinamico
In questa guida hai appreso come collegare una TextBox a una ListBox e realizzare la loro dynamica interattività. Questo concetto ti apre nuove strade per progettare applicazioni per utenti che siano sia informative che facili da usare.
Domande frequenti
Cosa devo fare se la TextBox non si aggiorna?Controlla se la ListBox restituisce il valore corretto e se il DataAdapter è stato configurato correttamente.
Come aggiungo una nuova marca auto?Lo tratteremo nel prossimo video, inserendo un pulsante che ti consente di aggiungere marche auto al database.
Perché facciamo il cast delle uscite della DataTable come stringa?Per assicurarci che il valore nella TextBox venga visualizzato correttamente come testo, dobbiamo convertirlo in una stringa.