Užil jsi se naučil, jak naplnit ListBox daty z databáze SQLite. V této lekci rozšíříme své znalosti tím, že propojíme TextBox s tímto ListBoxem. Toto propojení ti umožní měnit, mazat nebo přidávat nové hodnoty. Dále ukážeme, jak sledovat výběr v ListBoxu a zobrazovat jeho hodnotu v TextBoxu. Tím můžeš svou aplikaci učinit interaktivnější a uživatelsky přívětivější.
Hlavní poznatky
- Propojíš TextBox s ListBoxem, aby se výběr dynamicky zobrazoval.
- Pomocí databáze SQLite můžeš svá data trvale ukládat a načítat.
- Implementujeme opatření na prevenci chyb, abychom se vyhnuli nechtěným výjimkám.
Krok za krokem průvodce
Nejprve se podíváme, jak můžeme vytvořit propojení mezi naším TextBoxem a ListBoxem:
1. Dotaz na výběr v ListBoxu
Abychom mohli sledovat výběr v ListBoxu, musíme přidat kód pro příslušné události. Nejdříve musíme vědět, který prvek je v ListBoxu momentálně vybrán.

Za tímto účelem kopírujeme SQLiteCommand z metody, pomocí které jsme naplnili ListBox. Tento kód vložíme na příslušné místo a doplníme o SQL příkaz, který načítá výběr z naší databáze. SQL příkaz by mohl vypadat takto: SELECT ID, Automarke FROM Automarken WHERE ID = @ID, přičemž @ID je zástupný symbol pro naši proměnnou.
2. Přidání parametru do SQL dotazu
Dalším krokem je nastavení parametru pro SQL dotaz. Zde používáme primární klíč (Primary Key), abychom vybrali správnou automobilku.
Příkaz se pak optimalizuje tím, že získáme ID vybrané automobilky z ListBoxu. To se provádí voláním listBox.SelectedValue. Nyní přidáme tento parametr k dotazu.

3. Vytvoření a naplnění DataTable
Nyní, když máme SQL příkaz, musíme vytvořit DataTable, abychom zpracovali dotazy. Pojmenujeme tuto DataTable myDataTable a poté přidáme SQLiteDataAdapter, abychom inicializovali výsledky našeho SQL dotazu.

Jakmile je DataTable naplněna, můžeme naplnit TextBox hodnotou vybrané automobilky.

4. Zobrazení vybrané automobilky v TextBoxu
Abychom nastavili hodnotu z DataTable do TextBoxu, získáme první položku DataTable. Používáme myDataTable.Rows[0]["Automarke"].ToString() a výsledek nastavíme do TextBoxu.
5. Implementace zpracování chyb
Abychom zajistili, že při provádění aplikace nedojde k chybám, musíme zavést zpracování chyb. To se provádí tím, že před provedením dotazu zkontrolujeme, zda bylo vybráno nějaké řádek v ListBoxu.
Zde používáme jednoduchou podmínku: Pokud myListBox.SelectedValue == null, přerušíme metodu. Toto opatření zajišťuje, že nedojde k nulovým referencím a aplikace zůstane stabilní.

6. Provádění funkčních testů
Po implementaci výše uvedených kroků je důležité aplikaci otestovat. Spusť program a zkontroluj, zda se při spuštění první položka v ListBoxu automaticky zobrazuje v TextBoxu.

Pokud nyní přepínáš mezi různými automobilkami, měl bys vidět, že TextBox se dynamicky aktualizuje, aby zobrazoval odpovídající hodnotu.

Nyní, když rozumíš základům a kódu pro propojení TextBoxu a ListBoxu, můžeš svou aplikaci dále optimalizovat. V dalším kroku se naučíme, jak přidávat nové automobilky do databáze pomocí tlačítka.
Souhrn – ListBox a TextBox v C#: Dynačně propojit data
V tomto průvodci ses naučil, jak propojit TextBox s ListBoxem a realizovat jeho dynamickou interaktivitu. Tento koncept ti otevírá nové cesty, jak vytvářet uživatelské aplikace, které jsou jak informativní, tak uživatelsky přívětivé.
Často kladené dotazy
Co mám dělat, když se TextBox neaktualizuje?Zkontroluj, zda ListBox vrací správnou hodnotu a zda byl DataAdapter správně nakonfigurován.
Jak přidám novou automobilku?To probereme v příštím videu, když přidáme tlačítko, které ti umožní přidat automobilky do databáze.
Proč převádíme výstupy DataTable na String?Abychom zajistili, že hodnota v TextBoxu se správně zobrazuje jako text, musíme ji převést na String.