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.

Collegamento dinamico di ListBox e TextBox in C#

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.

Collegamento dinamico tra ListBox e TextBox in C#

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.

Collegamento dinamico di ListBox e TextBox in C#

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

Collegamento dinamico tra ListBox e TextBox in C#

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.

Collegamento dinamico tra ListBox e TextBox in C#

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.

Collegamento dinamico tra ListBox e TextBox in C#

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

Collegamento dinamico tra ListBox e TextBox in C#

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.