Вие вече сте научили как да попълните ListBox с данни от SQLite база данни. В този урок ще разширим нашето знание, като свържем TextBox с този ListBox. Тази връзка ви позволява да променяте, изтривате или добавяте нови стойности. Също така ще покажем как да наблюдавате избора в ListBox и да показвате неговата стойност в TextBox. Така ще можете да направите вашето приложение по-интерактивно и удобно за потребителя.
Най-важни заключения
- Вие свързвате TextBox с ListBox, за да показвате избора динамично.
- Чрез използването на SQLite база данни можете да съхранявате и извличате данните си постоянно.
- Ние прилагаме мерки за избягване на грешки, за да избегнем нежелани изключения.
Стъпка по стъпка ръководство
Първо ще разгледаме как да установим връзката между нашия TextBox и ListBox:
1. Запитване на избора в ListBox
За да наблюдаваме избора в ListBox, трябва да добавим код за съответните събития. Първо трябва да знаем кой елемент в ListBox в момента е избран.

За тази цел копираме SQLiteCommand от метода, с който попълнихме ListBox. Вмъкваме този код на подходящото място и го допълваме с SQL команда, която извлича избора от нашата база данни. SQL командата може да изглежда така: SELECT ID, МаркаАвтомобил FROM Автомобили WHERE ID = @ID, където @ID е място за нашия параметър.
2. Добавяне на параметър към SQL запитването
Следващата стъпка е да зададем параметъра за SQL запитването. Тук използваме първичния ключ (Primary Key), за да изберем правилната марка автомобил.
Командата след това се оптимизира, като вземем ID на избраната марка автомобил от ListBox. Това става чрез извикване на listBox.SelectedValue. Сега добавяме този параметър към запитването.

3. Създаване и запълване на DataTable
Сега, когато имаме SQL командата, трябва да създадем DataTable, за да обработваме запитванията. Ние я наричаме myDataTable и след това добавяме SQLiteDataAdapter, за да инициализираме резултатите от нашето SQL запитване.

Щом DataTable е запълнена, можем да запълним TextBox със стойността на избраната марка автомобил.

4. Показване на избраната марка автомобил в TextBox
За да зададем стойността от DataTable в TextBox, извикваме първия запис на DataTable. Използваме myDataTable.Rows[0]["МаркаАвтомобил"].ToString() и задаваме резултата в TextBox.
5. Имплементиране на обработка на грешки
За да гарантираме, че при изпълнението на приложението не възникват грешки, трябва да въведем обработка на грешки. Това става, като преди извършване на запитването проверим дали елемент в ListBox е избран.
Тук използваме проста условие: Ако myListBox.SelectedValue == null, прекратяваме метода. Тази мярка гарантира, че няма да получим null референции и приложението ще остане стабилно.

6. Провеждане на функционални тестове
След имплементирането на гореспоменатите стъпки е важно да тествате приложението. Стартирайте програмата и проверете дали при стартиране първият запис в ListBox автоматично се показва в TextBox.

Ако сега променяте между различните марки автомобили, ще видите, че TextBox се актуализира динамично, за да представи съответната стойност.

Сега, след като разбирате основите и кода за връзката между TextBox и ListBox, можете да оптимизирате приложението си допълнително. В следващата стъпка ще научим как да добавите нови марки автомобили в базата данни с бутона.
Резюме – ListBox и TextBox в C#: динамично свързване на данни
В това ръководство научихте как да свържете TextBox с ListBox и да реализирате тяхната динамична интерактивност. Тази концепция ви отваря нови възможности за проектиране на потребителски приложения, които са както информативни, така и удобни за потребителя.
Често задавани въпроси
Какво да правя, ако TextBox не се актуализира?Проверете дали ListBox връща правилната стойност и дали DataAdapter е конфиgуриран правилно.
Как да добавя нова марка автомобил?Това ще разгледаме в следващото видео, като добавим бутон, който ви позволява да добавяте марки на базата данни.
Защо преобразуваме изходите на DataTable в String?За да гарантираме, че стойността в TextBox се показва правилно като текст, трябва да я преобразуваме в String.