Du hast bereits gelernt, wie man eine ListBox mit Daten aus einer SQLite-Datenbank füllt. In dieser Lektion erweitern wir unser Wissen, indem wir eine TextBox mit dieser ListBox verknüpfen. Diese Verknüpfung ermöglicht es dir, Informationen zu ändern, zu löschen oder neue Werte hinzuzufügen. Zudem zeigen wir, wie man die Auswahl in der ListBox überwacht und deren Wert in der TextBox anzeigt. Damit kannst du deine Anwendung interaktiver und benutzerfreundlicher gestalten.
Wichtigste Erkenntnisse
- Du verknüpfst eine TextBox mit einer ListBox, um die Auswahl dynamisch anzuzeigen.
- Durch die Verwendung einer SQLite-Datenbank kannst du deine Daten persistente speichern und abrufen.
- Wir implementieren Maßnahmen zur Fehlervermeidung, um ungewollte Ausnahmen zu vermeiden.
Schritt-für-Schritt-Anleitung
Zuerst werfen wir einen Blick darauf, wie wir die Verknüpfung zwischen unserer TextBox und der ListBox herstellen können:
1. Auswahl in der ListBox abfragen
Um die Auswahl in der ListBox zu überwachen, müssen wir Code für die entsprechenden Ereignisse hinzufügen. Zunächst müssen wir wissen, welches Element in der ListBox derzeit ausgewählt ist.

Hierzu kopieren wir den SQLiteCommand von der Methode, mit der wir die ListBox gefüllt haben. Wir fügen diesen Code an die passende Stelle ein und ergänzen ihn um einen SQL-Befehl, der die Auswahl aus unserer Datenbank abruft. Der SQL-Befehl könnte so aussehen: SELECT ID, Automarke FROM Automarken WHERE ID = @ID, wobei @ID ein Platzhalter für unseren Parameter ist.
2. Parameter zur SQL-Abfrage hinzufügen
Der nächste Schritt besteht darin, den Parameter für die SQL-Abfrage zu setzen. Hier verwenden wir den Primärschlüssel (Primary Key), um die richtige Automarke auszuwählen.
Der Befehl wird dann optimiert, indem wir die ID der ausgewählten Automarke aus der ListBox hervorholen. Dies geschieht durch den Aufruf von listBox.SelectedValue. Nun fügen wir diesen Parameter zur Abfrage hinzu.

3. Erstellung und Füllung einer DataTable
Jetzt, wo wir den SQL-Befehl haben, müssen wir eine DataTable erstellen, um die Abfragen zu verarbeiten. Wir benennen diese DataTable myDataTable und fügen dann den SQLiteDataAdapter hinzu, um die Ergebnisse unserer SQL-Abfrage zu initialisieren.

Sobald die DataTable gefüllt ist, können wir die TextBox mit dem Wert der ausgewählten Automarke befüllen.

4. Anzeige der ausgewählten Automarke in der TextBox
Um den Wert von der DataTable in die TextBox zu setzen, rufen wir den ersten Eintrag der DataTable ab. Wir verwenden myDataTable.Rows[0]["Automarke"].ToString() und setzen das Ergebnis in die TextBox.
5. Fehlerbehandlung implementieren
Um sicherzustellen, dass bei der Ausführung der Anwendung keine Fehler auftreten, müssen wir eine Fehlerbehandlung einführen. Dies geschieht, indem wir vor der Durchführung der Abfrage prüfen, ob ein Element in der ListBox ausgewählt wurde.
Hier verwenden wir eine einfache Bedingung: Wenn myListBox.SelectedValue == null ist, brechen wir die Methode ab. Diese Maßnahme stellt sicher, dass wir keine Nullreferenzen erhalten und die Anwendung stabil bleibt.

6. Funktionstests durchführen
Nach der Implementierung der oben genannten Schritte ist es wichtig, die Anwendung zu testen. Starte das Programm und überprüfe, ob beim Start der erste Eintrag in der ListBox automatisch in der TextBox angezeigt wird.

Wenn du nun zwischen den verschiedenen Automarken wechselst, solltest du sehen, dass die TextBox dynamisch aktualisiert wird, um den entsprechenden Wert darzustellen.

Jetzt, da du die Grundlagen und den Code für die Verknüpfung von TextBox und ListBox versteht, kannst du deine Anwendung weiter optimieren. Im nächsten Schritt werden wir lernen, wie du neue Automarken über einen Button in die Datenbank einfügen kannst.
Zusammenfassung – ListBox und TextBox in C#: Daten dynamisch verknüpfen
In dieser Anleitung hast du gelernt, wie du eine TextBox mit einer ListBox verknüpfen und deren dynamische Interaktivität realisieren kannst. Dieses Konzept eröffnet dir neue Wege, um Benutzeranwendungen zu gestalten, die sowohl informativ als auch benutzerfreundlich sind.
Häufig gestellte Fragen
Was mache ich, wenn die TextBox nicht aktualisiert wird?Prüfe, ob die ListBox den richtigen Wert zurückgibt und ob der DataAdapter korrekt konfiguriert wurde.
Wie füge ich eine neue Automarke hinzu?Das werden wir im nächsten Video behandeln, indem wir einen Button einfügen, der es dir ermöglicht, Automarken an die Datenbank anzuhängen.
Warum casten wir die Ausgaben der DataTable als String?Um sicherzustellen, dass der Wert in der TextBox korrekt als Text angezeigt wird, müssen wir ihn in einen String umwandeln.