Du har redan lärt dig hur man fyller en ListBox med data från en SQLite-databas. I denna lektion utökar vi vår kunskap genom att koppla en TextBox till denna ListBox. Denna koppling gör det möjligt för dig att ändra, ta bort eller lägga till nya värden. Dessutom visar vi hur man övervakar valet i ListBox och visar dess värde i TextBox. På så sätt kan du göra din applikation mer interaktiv och användarvänlig.
Viktigaste insikter
- Du kopplar en TextBox till en ListBox för att dynamiskt visa valet.
- Genom att använda en SQLite-databas kan du spara och hämta dina data på ett beständigt sätt.
- Vi implementerar åtgärder för att undvika fel, för att förhindra oönskade undantag.
Steg-för-steg-guide
Först tar vi en titt på hur vi kan skapa kopplingen mellan vår TextBox och ListBox:
1. Fråga om valet i ListBox
För att övervaka valet i ListBox måste vi lägga till kod för de relevanta händelserna. Först måste vi veta vilket element som för närvarande är valt i ListBox.

För detta kopierar vi SQLiteCommand från metoden där vi fyllde ListBox. Vi lägger till denna kod på rätt ställe och kompletterar den med ett SQL-kommando som hämtar valet från vår databas. SQL-kommandot kan se ut så här: SELECT ID, Automarke FROM Automarken WHERE ID = @ID, där @ID är en plats för vår parameter.
2. Lägg till parametrar till SQL-frågan
Nästa steg är att sätta parametern för SQL-frågan. Här använder vi primärnyckeln (Primary Key) för att välja rätt bilmärke.
Kommandot optimeras sedan genom att hämta ID:t för det valda bilmärket från ListBox. Detta görs genom att anropa listBox.SelectedValue. Nu lägger vi till denna parameter i frågan.

3. Skapa och fyll en DataTable
Nu när vi har SQL-kommandot måste vi skapa en DataTable för att bearbeta förfrågningarna. Vi döper denna DataTable till myDataTable och lägger sedan till SQLiteDataAdapter för att initiera resultaten från vår SQL-fråga.

När DataTable är fylld kan vi fylla TextBox med värdet av det valda bilmärket.

4. Visa det valda bilmärket i TextBox
För att sätta värdet från DataTable i TextBox hämtar vi den första posten i DataTable. Vi använder myDataTable.Rows[0]["Automarke"].ToString() och sätter resultatet i TextBox.
5. Implementera felhantering
För att säkerställa att inga fel uppstår när applikationen körs måste vi införa felhantering. Detta görs genom att kontrollera om ett element har valts i ListBox innan vi gör förfrågningen.
Här använder vi ett enkelt villkor: Om myListBox.SelectedValue == null, avbryter vi metoden. Denna åtgärd säkerställer att vi inte får nullreferenser och att applikationen förblir stabil.

6. Genomföra funktionstester
Efter att ha implementerat ovanstående steg är det viktigt att testa applikationen. Starta programmet och kontrollera om den första posten i ListBox automatiskt visas i TextBox vid start.

När du nu växlar mellan de olika bilmärkena bör du se att TextBox uppdateras dynamiskt för att visa det motsvarande värdet.

Nu när du förstår grunderna och koden för kopplingen mellan TextBox och ListBox kan du optimera din applikation ytterligare. I nästa steg kommer vi att lära oss hur du kan lägga till nya bilmärken i databasen via en knapp.
Sammanfattning – ListBox och TextBox i C#: Koppla data dynamiskt
I denna guide har du lärt dig hur du kan koppla en TextBox till en ListBox och realisera dess dynamiska interaktivitet. Detta koncept öppnar nya vägar för att skapa användarapplikationer som både är informativa och användarvänliga.
Vanliga frågor
Vad gör jag om TextBox inte uppdateras?Kontrollera att ListBox returnerar rätt värde och att DataAdapter är korrekt konfigurerad.
Hur lägger jag till ett nytt bilmärke?Detta kommer vi att ta upp i nästa video, där vi lägger till en knapp som låter dig lägga till bilmärken i databasen.
Varför castar vi utdata från DataTable som sträng?För att säkerställa att värdet visas korrekt som text i TextBox, måste vi omvandla det till en sträng.