Du har allerede lært hvordan man fyller en ListBox med data fra en SQLite-database. I denne leksjonen utvider vi vår kunnskap ved å knytte en TextBox til denne ListBoxen. Denne koblingen lar deg endre, slette eller legge til nye verdier. Videre viser vi hvordan man overvåker valget i ListBoxen og viser verdien i TextBoxen. Dermed kan du gjøre applikasjonen din mer interaktiv og brukervennlig.
Viktigste innsikter
- Du kobler en TextBox med en ListBox for å vise valget dynamisk.
- Ved å bruke en SQLite-database kan du lagre og hente dataene dine på en vedvarende måte.
- Vi implementerer tiltak for feilhåndtering for å unngå uønskede unntak.
Trinn-for-trinn-guide
Først skal vi se på hvordan vi kan lage koblingen mellom vår TextBox og ListBox:
1. Spør om valget i ListBoxen
For å overvåke valget i ListBoxen må vi legge til kode for de aktuelle hendelsene. Først må vi vite hvilket element i ListBoxen som for øyeblikket er valgt.

For dette kopierer vi SQLiteCommand fra metoden vi brukte for å fylle ListBoxen. Vi setter inn denne koden på riktig sted og supplerer den med en SQL-setning som henter valget fra databasen vår. SQL-setningen kan se slik ut: SELECT ID, Automarke FROM Automarken WHERE ID = @ID, der @ID er en plassholder for parameteren vår.
2. Legge til parametere for SQL-spørringen
Neste steg er å sette parameteren for SQL-spørringen. Her bruker vi primærnøkkelen (Primary Key) for å velge riktig bilmerke.
Kommandoen blir så optimalisert ved at vi henter IDen til det valgte bilmerket fra ListBoxen. Dette gjøres ved å kalle på listBox.SelectedValue. Nå legger vi til denne parameteren i spørringen.

3. Opprette og fylle en DataTable
Nå som vi har SQL-setningen, må vi opprette en DataTable for å behandle spørringene. Vi gir denne DataTable et navn, myDataTable og legger så til SQLiteDataAdapter for å initialisere resultatene fra SQL-spørringen vår.

Når DataTable er fylt, kan vi fylle TextBoxen med verdien av det valgte bilmerket.

4. Vise det valgte bilmerket i TextBoxen
For å sette verdien fra DataTable inn i TextBoxen, henter vi den første oppføringen fra DataTable. Vi bruker myDataTable.Rows[0]["Automarke"].ToString() og setter resultatet inn i TextBoxen.
5. Implementere feilhåndtering
For å sikre at det ikke oppstår feil under kjøringen av applikasjonen, må vi innføre feilhåndtering. Dette skjer ved å sjekke om et element er valgt i ListBoxen før vi utfører spørringen.
Her bruker vi en enkel betingelse: Hvis myListBox.SelectedValue == null, avbryter vi metoden. Dette tiltaket sikrer at vi ikke får nullreferanser og at applikasjonen forblir stabil.

6. Utføre funksjonstester
Etter å ha implementert de ovennevnte trinnene, er det viktig å teste applikasjonen. Start programmet og sjekk om den første oppføringen i ListBoxen vises automatisk i TextBoxen ved oppstart.

Når du nå bytter mellom de forskjellige bilmerkene, bør du se at TextBoxen oppdateres dynamisk for å vise den tilsvarende verdien.

Nå som du forstår begrepene og koden for koblingen mellom TextBox og ListBox, kan du fortsette å optimalisere applikasjonen din. I neste trinn vil vi lære hvordan du kan legge til nye bilmerker i databasen via en knapp.
Oppsummering – ListBox og TextBox i C#: Knytte data dynamisk
I denne guiden har du lært hvordan du kan koble en TextBox til en ListBox og realisere dens dynamiske interaktivitet. Dette konseptet åpner for nye måter å skape brukerapplikasjoner som er både informative og brukervennlige.
Vanlige spørsmål
Hva gjør jeg hvis TextBoxen ikke oppdateres?Kontroller om ListBoxen returnerer riktig verdi og om DataAdapteren er korrekt konfigurert.
Hvordan legger jeg til et nytt bilmerke?Det vil vi ta opp i neste video, ved å legge til en knapp som lar deg legge bilmerker til databasen.
Hvorfor kaster vi utdataene fra DataTable som String?For å sikre at verdien i TextBoxen vises korrekt som tekst, må vi konvertere den til en String.