Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

3. diel - Vytvorenie tabuľky v databáze vo Visual Studio vo VB.NET

V minulej lekcii, Vytvorenie lokálnej databázy vo Visual Studio vo VB.NET , sme si pripravili databázu.

V dnešnom Databáze - ADO.NET tutoriále, v jazyku VB.NET, sa naučíme tvoriť tabuľky v lokálnej databáze Visual Studia.

Budeme pokračovať v projekte z lekcie Vytvorenie lokálnej databázy vo Visual Studio vo VB.NET

Vytvorenie tabuľky Word

Stromovú štruktúru lokálneho servera, na ktorom je databáza, si môžeme zobraziť buď cez okno Server Explorer alebo cez okno SQL Server Object Explorer. My si otvoríme SQL Server Object Explorer, pretože je priamo určený pre prácu s SQL databázou. Rozbalíme položku SQL Server -> (localdb)\MSSQLLo­calDB - > Databases . V tejto zložke vidíme našu databázu SlovnicekDB. Rozbalíme ju a rovnako tak jej položku Tables, kde máme zatiaľ len systémové tabuľky.

Vieme, že dáta sa v relačných databázach ukladajú do tabuliek. Do našej databázy budeme chcieť ukladať slovíčka. Najprv musíme vytvoriť novú tabuľku, kde definujeme stĺpce, teda vlastnosti, aké slovíčko má. Na položku Tables klikneme pravým tlačidlom a zvolíme možnosť Add New Table:

Databáza vo VB.NET - ADO.NET

Visual Studio otvorí designer tabuľky. Tento designer má okno rozdelené na tri časti. V hornej polovici máme stĺpce našej tabuľky s ich dátovými typmi a ďalšími dôležitými vlastnosťami. Dole je výsledný T-SQL kód, ktorý sa spustí a databázu založí, až to budeme chcieť.

Primárny kľúč

Ako už bolo načrtnuté, každá položka v databáze (teda riadok v tabuľke) by mala mať unikátny identifikátor (stĺpec, v ktorom je pre každý riadok hodnota jedinečná). Na tento účel slúži tzv. primárny kľúč. Je to obyčajný stĺpec, ktorý sa najčastejšie pomenuje jednoducho Id a bude typu int. Názvy stĺpcov budeme písať s veľkým počiatočným písmenom. Vidíme, že primárny kľúč s názvom Id sa nám do tabuľky už pridal na miesto prvého stĺpca.

Hoci doteraz sme sa snažili písať ukážkové aplikácie v češtine, databázu si navrhneme v angličtine. To preto, že ku koncu kurzu budeme používať technológie, ktoré skloňujú názvy tabuliek a vedia samozrejme len anglicky.

Vloženie ďalších stĺpcov

Pod stĺpec primárneho kľúča Id si pridáme ďalšie dva stĺpce. Do Name druhého stĺpca vložíme Czech a pod ním, ako tretí stĺpec, English. Ide o znenie slovíčka v češtine av angličtine. Do Data Type oboch stĺpcov vložíme typ nvarchar(50). Ide o reťazec znakov, kde 50 je maximálny počet znakov.

Nepleťme si nvarchar s typom nchar. Pri nchar sa nejedná o maximálnu veľkosť, ale text je vždy dlhý 50 znakov. Ešte existujú typy char a varchar (bez n), tie nepodporujú kódovanie Unicode, a preto ich nebudeme používať. Pre krátky text budeme teda vždy používať typ nvarchar.

Nakoniec pridáme posledný stĺpec s názvom Difficulty, značiaci obtiažnosť slovíčka. Bude typu int.

Definícia tabuľky je takmer totožná s definíciou triedy. Jednoducho navolíme atribúty, čo daná entita má. Riadky zapísané v tabuľke potom môžeme chápať ako jednotlivé inštancie triedy. Tvoríme teda akoby triedu Word (slovíčko), ktorá má vlastnosti Id, Czech (české znenie) a English (anglické znenie). Takto budeme vo výsledku s databázou aj pracovať, ale nepredbiehajme :-)

Unikátnosť primárneho kľúča Id

Vráťme sa ešte k stĺpcu Id. Klikneme naň pravým tlačidlom a vyberme Properties. V okne Properties nastavme možnosť Is Identity na True (je potrebné rozbaliť Identity Specification):

Databáza vo VB.NET - ADO.NET

Tým sme určili, že stĺpec Id je vždy unikátny. Visual Studio nám samo nastavilo aj hodnoty Identity Increment a Identity Seed na 1. To znamená, že prvé slovíčko v tabuľke bude mať hodnotu Id 1, druhé 2 atď. Databáza priradí automaticky každému novo vloženému slovíčku o 1 vyššiu Id, o unikátnosť sa nám teda stará sama.

Id rastú stále, aj keď nejaké slovíčko vymažeme a uvoľnené Idnebude použité. Je to z toho dôvodu, že recyklácia starých Id môže spôsobiť problémy.

Ak stĺpec Id ešte nemáme nastavený ako primárny kľúč pre našu novú tabuľku, tak klikneme pravým tlačidlom na názov stĺpca a zvolíme možnosť Set Primary Key:

Databáza vo VB.NET - ADO.NET

Každá tabuľka by mala mať primárny kľúč, inak nebudeme schopní jednoznačne určiť konkrétny záznam a niektoré technológie (napr. Entity Framework) by s tabuľkou mohli mať problém pracovať.

Premenovanie tabuľky

Nakoniec si tabuľku premenujeme na Word (ako slovíčko). To docielime tak, že v T-SQL kóde prepíšeme na konci prvého riadku aktuálny názov Table v hranatých zátvorkách na Word:

Databáza vo VB.NET - ADO.NET

Tabuľky pomenovávame opäť veľkým písmenom av jednotnom čísle, ako by to bola trieda.

Po premenovaní klikneme na tlačidlo Update. V okne, ktoré sa nám otvorí, klikneme na Update Database na uloženie zmien.

Testovacie dáta

Tabuľku Word máme týmto založenú. Vytvorme si ešte nejaké testovacie dáta, aby neboli prázdne. Na tabuľku klikneme pravým tlačidlom a zvolíme View Data:

Databáza vo VB.NET - ADO.NET

Teraz iba vložíme niekoľko slovíčok. Id sa vypĺňa samo, stačí teda zadať slovenský a anglický variant a obtiažnosť. Ja som si ich pridal len niekoľko, vy si ich pokojne naklikajte viac s rôznymi obtiažnosťami, nech máte čo najviac dát na skúšanie:

Databáza vo VB.NET - ADO.NET

Vytvorenie tabuľky Category

Pridajme si ešte druhú tabuľku. Vďaka tomu si budeme môcť ďalej ukázať aj pokročilejšie otázky cez viacero tabuliek.

Tabuľku pomenujme Category, pretože tabuľka bude reprezentovať kategóriu slovíčok. Opäť jej dáme stĺpec Id, ktorému nastavíme Identity na True a potom ho urobíme primárnym kľúčom. Čo sa týka ďalších stĺpcov, bude tu iba jeden, opäť typu nvarchar(50) as názvom Title. To bude titulok kategórie (napr. Počítače, Zvířata alebo Ostatní). Tabuľku uložíme ako Category:

Databáza vo VB.NET - ADO.NET

Testovacie dáta

Opäť si vložíme testovacie dáta:

Databáza vo VB.NET - ADO.NET

Cudzí kľúč

Teraz pridáme slovíčku väzbu na kategóriu, ktoré sa niekedy hovorí cudzí kľúč alebo relácie. Vráťme sa k našej tabuľke Word a pridajme ju ešte jeden stĺpec s názvom CategoryId. Bude typu int. V Properties mu nastavíme Default Value or Binding na 1. To je predvolená hodnota. Ďalej v pravom stĺpci designera klikneme pravým tlačidlom na položku Foreign Keys, zvolíme Add New Foreign Key a pomenujme ho napríklad FK_Word_Category:

Databáza vo VB.NET - ADO.NET

Tento cudzí kľúč (väzba) sa nám vygeneroval aj v T-SQL kóde:

Databáza vo VB.NET - ADO.NET

V T-SQL kóde nastavíme, že sa tabuľka Word pomocou stĺpca CategoryId pripojí na primárny kľúč tabuľky Category, ktorým je Id:

Databáza vo VB.NET - ADO.NET

Teraz databáza vie, že pokiaľ je napr. pri slovíčku v stĺpci CategoryId hodnota 1, viaže sa k prvej kategórii. Všetko uložíme tlačidlom Update. Znovu editujme záznamy v tabuľke Word a slovíčkam nastavme kategóriu:

Databáza vo VB.NET - ADO.NET

Číslo v stĺpci CategoryId je samozrejme primárny kľúč do tabuľky Category, 1 teda zodpovedá záznamu Počítače, 2 Zvířata a 3 Ostatní.

V budúcej lekcii, Prístupy pre prácu s relačnými databázami vo VB.NET , si uvedieme prístupy pre prácu s relačnou databázou, najmä DataSet a technológiu LINQ to SQL.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 3x (539.04 kB)
Aplikácia je vrátane zdrojových kódov v jazyku VB.NET

 

Predchádzajúci článok
Vytvorenie lokálnej databázy vo Visual Studio vo VB.NET
Všetky články v sekcii
Databáza vo VB.NET - ADO.NET
Preskočiť článok
(neodporúčame)
Prístupy pre prácu s relačnými databázami vo VB.NET
Článok pre vás napísal Stanislav Zita
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity