Już nauczyłeś się, jak wypełnić ListBox danymi z bazy danych SQLite. W tej lekcji poszerzamy naszą wiedzę, łącząc TextBox z tym ListBoxem. To powiązanie pozwala na edytowanie, usuwanie lub dodawanie nowych wartości. Ponadto pokażemy, jak monitorować wybór w ListBoxie i wyświetlać jego wartość w TextBoxie. Dzięki temu możesz uczynić swoją aplikację bardziej interaktywną i przyjazną dla użytkownika.
Najważniejsze spostrzeżenia
- Łączysz TextBox z ListBoxem, aby dynamicznie wyświetlać wybór.
- Dzięki użyciu bazy danych SQLite możesz trwale przechowywać i pobierać swoje dane.
- Wdrażamy środki zapobiegawcze, aby unikać niepożądanych wyjątków.
Instrukcja krok po kroku
Najpierw przyjrzymy się, jak możemy nawiązać połączenie między naszym TextBoxem a ListBoxem:
1. Sprawdzenie wyboru w ListBoxie
Aby monitorować wybór w ListBoxie, musimy dodać kod dla odpowiednich zdarzeń. Najpierw musimy wiedzieć, który element ListBoxa jest obecnie wybrany.

W tym celu kopiujemy SQLiteCommand z metody, za pomocą której wypełniliśmy ListBox. Wstawiamy ten kod w odpowiednie miejsce i uzupełniamy go o polecenie SQL, które pobiera wybór z naszej bazy danych. Polecenie SQL może wyglądać tak: SELECT ID, MarkaSamochodu FROM MarkiSamochodowe WHERE ID = @ID, gdzie @ID jest miejscem dla naszego parametru.
2. Dodanie parametru do zapytania SQL
Kolejnym krokiem jest ustawienie parametru dla zapytania SQL. Tutaj używamy klucza głównego (Primary Key), aby wybrać odpowiednią markę samochodu.
Polecenie jest następnie optymalizowane, gdy wydobywamy ID wybranej marki samochodu z ListBoxa. Dzieje się to poprzez wywołanie listBox.SelectedValue. Teraz dodajemy ten parametr do zapytania.

3. Utworzenie i wypełnienie DataTable
Teraz, gdy mamy polecenie SQL, musimy stworzyć DataTable, aby przetworzyć zapytania. Nazywamy tę DataTable myDataTable i następnie dodajemy SQLiteDataAdapter, aby zainicjować wyniki naszego zapytania SQL.

Gdy DataTable jest wypełniona, możemy wypełnić TextBox wartością wybranej marki samochodu.

4. Wyświetlanie wybranej marki samochodu w TextBoxie
Aby ustawić wartość z DataTable w TextBoxie, pobieramy pierwszy wpis z DataTable. Używamy myDataTable.Rows[0]["MarkaSamochodu"].ToString() i ustawiamy wynik w TextBoxie.
5. Implementacja obsługi błędów
Aby upewnić się, że podczas uruchamiania aplikacji nie wystąpią błędy, musimy wprowadzić obsługę błędów. Dzieje się to przez sprawdzenie, czy element w ListBoxie został wybrany przed wykonaniem zapytania.
Tutaj używamy prostej zasady: jeśli myListBox.SelectedValue == null, przerywamy metodę. To działanie zapewnia, że nie otrzymujemy referencji null i aplikacja pozostaje stabilna.

6. Przeprowadzanie testów funkcjonalnych
Po wdrożeniu powyższych kroków ważne jest, aby przetestować aplikację. Uruchom program i sprawdź, czy przy starcie pierwszy wpis w ListBoxie jest automatycznie wyświetlany w TextBoxie.

Gdy teraz przełączasz się między różnymi markami samochodów, powinieneś zauważyć, że TextBox jest dynamicznie aktualizowany, aby reprezentować odpowiednią wartość.

Teraz, gdy rozumiesz podstawy i kod powiązania TextBoxu z ListBoxem, możesz dalej optymalizować swoją aplikację. W kolejnym kroku nauczysz się, jak możesz dodać nowe marki samochodów do bazy danych za pomocą przycisku.
Podsumowanie – Połączenie ListBoxu i TextBoxu w C#: Dynamiczne powiązanie danych
W tym przewodniku nauczyłeś się, jak połączyć TextBox z ListBoxem i zrealizować jego dynamikę interakcji. To pojęcie otwiera przed Tobą nowe możliwości projektowania aplikacji użytkowych, które są zarówno informacyjne, jak i przyjazne dla użytkownika.
Najczęściej zadawane pytania
Co zrobić, gdy TextBox się nie aktualizuje?Sprawdź, czy ListBox zwraca prawidłową wartość i czy DataAdapter jest poprawnie skonfigurowany.
Jak dodać nową markę samochodu?To omówimy w kolejnym filmie, wklejając przycisk, który umożliwi dodanie marek samochodów do bazy danych.
Dlaczego przekształcamy wyniki DataTable na String?Aby upewnić się, że wartość w TextBoxie jest poprawnie wyświetlana jako tekst, musimy ją przekształcić w String.