IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Prvý databázová aplikácia v C # (LINQ to SQL)

V minulom dieli nášho seriálu tutoriálov o C# .NET sme si popísali rôzne prístupy pre prácu s databázou v objektových jazykoch a tiež technológie, ktoré sú v .NET frameworku pre tieto účely obsiahnuté. Dnes si konečne vytvoríme svoju prvú databázovú aplikáciu v C# .NET.

Pripojenie databázy z Visual Studia

Vo Visual Studio si vytvoríme nový projekt, Windows Form Application. Pomenujeme ju slovníček. Teraz otvoríme Server Explorer (vo verziách Express sa okno volá Database Explorer), klikneme pravým na Data Connections a zvolíme Add Connection.

Server / Database Explorer vo Visual Studiu - Databázy v C # - ADO.NET

V nasledujúcom dialógu skontrolujeme, že máme v DataSource nastavené "Microsoft SQL Server (SqlClient)". Do Server name zadáme "localhost \ meno_vášho_servera" a dole vyberieme našu databázu SlovnicekDB. Potvrdíme.

Pridanie nového pripojenia k MS-SQL databáze vo Visual Studio - Databázy v C # - ADO.NET

Visual Studio o našej databáze vie a dokáže sa k nej pripojiť.

LINQ to SQL

My budeme pre prácu s databázou používať technológiu LINQ to SQL. Už podľa názvu sa jedná o LINQ provider, ktorý umožňuje komunikovať s MS-SQL databáz pomocou technológie LINQ. Technológiu LINQ z minulých lekcií vieme používať.

LINQ to SQL je na používanie pomerne jednoduché ORM, vďaka ktorému budeme s riadky z databázy pracovať ako s objektmi.

K projektu slovníček si pripojíme nový item, LINQ to SQL Classes. Meno pokojne ponecháme na DataClasses, len zmažeme tú jednotku.

LINQ to SQL Classes vo Visual Studio - Databázy v C # - ADO.NET

Otvorí sa nám prázdna plocha. K projektu sme teraz pridali triedy, ktoré predstavujú jednotlivé entity v databáze. Pre každú tabuľku bude v DataClasses trieda, ktorá ju reprezentuje. Trieda bude mať také vlastnosti, ako má tabuľka stĺpce. Ďalej nám umožní jednoducho používať relácie, ktoré v našej situácii s jedinou tabuľkou zatiaľ nevyužijeme. DataClasses za nás samozrejme vygeneruje Visual Studio, presnejšie nástroj DBMetal. Stačí otvoriť Server Explorer, označiť všetky tabuľky v databáze a myší je presunúť na bielu plochu DataClasses.

LINQ to SQL Classes vo Visual Studio - Databázy v C # - ADO.NET

To je naozaj všetko. Teraz môžeme s databázou pracovať plne objektovo. Pre lepšie pochopenie funkčnosti som pre vás pripravil obrázok. Naša aplikácia komunikuje iba s DataClasses, kde sú objekty s dátami, o viac sa my nestaráme. Na pozadí DataClasses komunikujú s databázou pomocou Provider LINQ to SQL a naše objektovej otázky sú automaticky prevádzané na čisté SQL, posielané databázu a výsledky z databázy sú opäť prevádzané na objekty a vracajú sa pomocou DataClasses.

LIQn to SQL princíp - Databázy v C # - ADO.NET

Možno sa vám to zdá zložité, ono tiež zložité je, ale iba vo vnútri. Celá technológia je veľmi dobre odladené a jednoducho použiteľná, objektový komfort pri písaní aplikácií je veľmi príjemný, urýchľuje vývoj a sprehľadňuje kód.

Prvý databázová aplikácia

Poďme nakoniec konečne niečo naprogramovať. Prejdime do Form1.cs a na jeho plochu si natiahnite DataGridView, tú pomenujeme dataGridViewSlo­vicka. Nadol umiestnime tlačidlo Načítaj, pomenované buttonNacti.

Databázový formulár s komponentom DataGridView v C# .NET - Databázy v C # - ADO.NET

Práve kontrolka DataGridView sa dokonale hodí k zobrazenie dát z databázy. Vie toho naozaj veľa a možno ju veľmi dobre prispôsobovať.

Vnútri formulára si vytvorme tzv. Dátový kontext. To je premenná, ktorá referencuje na objektovú štruktúru databázy. Kontext nám vygenerovalo Visual Studio a je súčasti DataClasses. Pridajme si túto premennú do formulára:

public partial class Form1 : Form
{
    DataClassesDataContext kontext = new DataClassesDataContext();

    ...

Zavolaním konstruktoru sa nám aplikácie k databáze pripojí. Parametre pripojenia môžeme v konstruktoru bližšie špecifikovať alebo ich môžeme upraviť v súbore app.config, ktorý sa k nášmu projektu pridal vďaka LINQ to SQL Classes. Zatiaľ sa tým však nebudeme zaťažovať.

Naklikne si tlačidlo buttonNacti, tu do zdroja údajov DataGridView odkážeme kolekciu Words z kontextu:

dataGridViewSlovicka.DataSource = kontext.Words;

Áno, Visual Studio nám pri generovaní DataClasses vytvorilo pre každú tabuľku kolekciu. Kolekcia slovíčok (objektov typu Word) sa volá Words. V predvolenom nastavení dochádza k pluralite názvov, čo je veľmi intuitívne a prehľadné. Funguje to samozrejme len v angličtine, keby sme tabuľku pomenovali slovíčkami, VS by došlo k názvu Slovickos, to nie je príliš pekné. Preto budeme databázu preferovať v angličtine. Narážame na ďalší problém s používaním slovenských identifikátorov, preto to vo svojich programoch nikdy nerobím, však som vám sľúbil, že tutoriály budem písať po slovensky.

Aplikáciu spustíme a klikneme na tlačidlo:

Databázový formulár s komponentom DataGridView v C# .NET - Databázy v C # - ADO.NET

Vidíme, že sme sa úspešne napojili na databázu a zobrazili si obsah tabuľky Word, teda kolekciu Words v kontexte z DataClasses.

Aplikácia je spolu s exportom databázy v prílohe.


 

Stiahnuť

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

Stiahnuté 1010x (51.32 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#

 

Predchádzajúci článok
DataSet druhýkrát
Všetky články v sekcii
Databázy v C # - ADO.NET
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity