Ти вже навчився, як заповнити ListBox даними з бази даних SQLite. У цьому уроці ми розширимо наші знання, пов'язавши TextBox з цим ListBox. Це зв'язування дозволяє тобі змінювати, видаляти або додавати нові значення. Крім того, ми покажемо, як контролювати вибір у ListBox і відображати його значення в TextBox. Так ти зможеш зробити свій додаток більш інтерактивним і зручним для користувачів.
Основні висновки
- Ти пов'язуєш TextBox з ListBox, щоб динамічно відображати вибір.
- Використовуючи базу даних SQLite, ти можеш зберігати та отримувати свої дані перманентно.
- Ми реалізуємо заходи щодо запобігання помилкам, щоб уникнути небажаних виключень.
Покрокова інструкція
Спочатку розглянемо, як ми можемо встановити зв'язок між нашим TextBox і ListBox:
1. Запит вибору у ListBox
Щоб контролювати вибір у ListBox, ми повинні додати код для відповідних подій. Спочатку нам потрібно знати, який елемент у ListBox в даний момент вибрано.

Для цього ми копіюємо SQLiteCommand з методу, яким ми заповнили ListBox. Ми вставляємо цей код у відповідне місце і доповнюємо його SQL-командою, яка отримує вибір з нашої бази даних. SQL-команда може виглядати так: SELECT ID, Automarke FROM Automarken WHERE ID = @ID, де @ID є місцем для нашого параметра.
2. Додавання параметра до SQL-запиту
Наступний крок полягає в установці параметра для SQL-запиту. Тут ми використовуємо первинний ключ (Primary Key), щоб вибрати правильну марку автомобіля.
Команда потім оптимізується шляхом отримання ID вибраної марки автомобіля з ListBox. Це робиться за допомогою виклику listBox.SelectedValue. Тепер ми додаємо цей параметр до запиту.

3. Створення та заповнення DataTable
Тепер, коли у нас є SQL-команда, нам потрібно створити DataTable, щоб обробити запити. Ми назвемо цю DataTable myDataTable і потім додамо SQLiteDataAdapter, щоб ініціювати результати нашого SQL-запиту.

Як тільки DataTable заповнена, ми можемо заповнити TextBox значенням вибраної марки автомобіля.

4. Відображення вибраної марки автомобіля в TextBox
Щоб встановити значення з DataTable в TextBox, ми отримуємо перший запис з DataTable. Ми використовуємо myDataTable.Rows[0]["Automarke"].ToString() і встановлюємо результат у TextBox.
5. Реалізація обробки помилок
Щоб бути впевненим, що під час виконання програми не виникне помилок, ми повинні впровадити обробку помилок. Це робиться шляхом перевірки, чи вибрано елемент у ListBox перед виконанням запиту.
Тут ми використовуємо просту умову: якщо myListBox.SelectedValue == null, ми перериваємо метод. Цей захід забезпечує, що ми не отримаємо нульові посилання і програма залишиться стабільною.

6. Проведення функціональних тестів
Після впровадження вищезазначених кроків важливо протестувати додаток. Запусти програму і перевір, чи автоматично відображається перший запис у ListBox в TextBox під час запуску.

Коли ти тепер змінюєш між різними марками автомобілів, ти повинен бачити, що TextBox динамічно оновлюється, щоб відобразити відповідне значення.

Тепер, коли ти розумієш основи і код для зв'язування TextBox і ListBox, ти можеш далі оптимізувати свій додаток. Насамперед, ми навчимося, як додавати нові марки автомобілів у базу даних за допомогою кнопки.
Підсумок – зв'язування ListBox і TextBox у C#: динамічне зв'язування даних
У цьому посібнику ти дізнався, як пов'язати TextBox з ListBox і реалізувати їх динамічну інтерактивність. Ця концепція відкриває нові шляхи для створення користувацьких додатків, які є як інформативними, так і зручними для користувачів.
Часті запитання
Що робити, якщо TextBox не оновлюється?Перевір, чи ListBox повертає правильне значення і чи правильно конфігуровано DataAdapter.
Як додати нову марку автомобіля?Це ми розглянемо в наступному відео, додавши кнопку, яка дозволить тобі доповнити базу даних марками автомобілів.
Чому ми перетворюємо виходи з DataTable в рядок?Щоб гарантовано значення в TextBox коректно відображалося як текст, нам потрібно перетворити його в рядок.