Du har allerede lært, hvordan man fylder en ListBox med data fra en SQLite-database. I denne lektion udvider vi vores viden ved at knytte en TextBox til denne ListBox. Denne forbindelse giver dig mulighed for at ændre, slette eller tilføje nye værdier. Derudover viser vi, hvordan man overvåger valget i ListBox'en og viser dens værdi i TextBox'en. På den måde kan du gøre din applikation mere interaktiv og brugervenlig.
Vigtigste indsigter
- Du knytter en TextBox til en ListBox for dynamisk at vise valget.
- Ved at bruge en SQLite-database kan du gemme og hente dine data vedvarende.
- Vi implementerer foranstaltninger til fejlhåndtering for at undgå utilsigtede undtagelser.
Trinvist vejledning
Først ser vi på, hvordan vi kan etablere forbindelsen mellem vores TextBox og ListBox:
1. Spørg om valget i ListBox'en
For at overvåge valget i ListBox'en skal vi tilføje kode til de relevante hændelser. Først skal vi vide, hvilket element der i øjeblikket er valgt i ListBox'en.

Til dette kopierer vi SQLiteCommand fra metoden, som vi har fyldt ListBox'en med. Vi indsætter denne kode på det rette sted og supplerer den med en SQL-kommando, der henter valget fra vores database. SQL-kommandoen kunne se sådan ud: SELECT ID, Automarke FROM Automarken WHERE ID = @ID, hvor @ID er en pladsmarkør for vores parameter.
2. Tilføj parameter til SQL-forespørgsel
Næste skridt er at sætte parameteren til SQL-forespørgslen. Her bruger vi primærnøglen (Primary Key) til at vælge den rigtige bilmodel.
Herefter optimerer vi kommandoen ved at hente ID'et for den valgte bilmodel fra ListBox'en. Dette gøres ved at kalde listBox.SelectedValue. Nu tilføjer vi denne parameter til forespørgslen.

3. Oprette og fylde en DataTable
Nu, hvor vi har SQL-kommandoen, skal vi oprette en DataTable til at behandle forespørgslerne. Vi navngiver denne DataTable myDataTable og tilføjer derefter SQLiteDataAdapter for at initialisere resultaterne af vores SQL-forespørgsel.

Når DataTable'en er fyldt, kan vi opdatere TextBox'en med værdien af den valgte bilmodel.

4. Vis den valgte bilmodel i TextBox'en
For at sætte værdien fra DataTable'en i TextBox'en henter vi den første post fra DataTable'en. Vi bruger myDataTable.Rows[0]["Automarke"].ToString() og sætter resultatet i TextBox'en.
5. Implementere fejlhåndtering
For at sikre, at der ikke opstår fejl under udførelsen af applikationen, skal vi indføre fejlhåndtering. Dette gøres ved at tjekke, om et element er valgt i ListBox'en, inden vi udfører forespørgslen.
Her bruger vi en simpel betingelse: Hvis myListBox.SelectedValue == null, afbryder vi metoden. Dette tiltag sikrer, at vi ikke får null-referencer og at applikationen forbliver stabil.

6. Udføre funktionstests
Efter implementeringen af de ovenstående trin er det vigtigt at teste applikationen. Start programmet og kontroller, om den første post i ListBox'en automatisk vises i TextBox'en ved opstart.

Når du nu skifter mellem de forskellige bilmodeller, bør du kunne se, at TextBox'en opdateres dynamisk for at repræsentere den tilsvarende værdi.

Nu hvor du forstår grundlagene og koden til forbindelsen mellem TextBox og ListBox, kan du optimere din applikation yderligere. I næste trin vil vi lære, hvordan du kan tilføje nye bilmodeller til databasen via en knap.
Opsummering – ListBox og TextBox i C#: Dynamisk knytning af data
I denne vejledning har du lært, hvordan du kan knytte en TextBox til en ListBox og realisere dens dynamiske interaktivitet. Dette koncept åbner nye muligheder for at designe brugerapplikationer, der både er informative og brugervenlige.
Ofte stillede spørgsmål
Hvad gør jeg, hvis TextBox'en ikke opdateres?Tjek om ListBox'en returnerer den rigtige værdi, og om DataAdapter'en er korrekt konfigureret.
Hvordan tilføjer jeg en ny bilmodel?Det vil vi behandle i den næste video ved at tilføje en knap, der giver dig mulighed for at tilføje bilmodeller til databasen.
Hvorfor konverterer vi udgangene fra DataTable til string?For at sikre, at værdien i TextBox'en vises korrekt som tekst, skal vi konvertere den til en string.