Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

Databáza v C# .NET - SQL Server Compact Edition (CE)

V predchádzajúcom kvíze, Kvíz - Databáza v C# - ADO.NET, sme si overili nadobudnuté skúsenosti z kurzu.

Článok pojednáva o technológii, ktorej vývoj bol Microsoftom ukončený. Je na ITnetwork iba z historických dôvodov, keby informácie niekto potreboval pre aplikáciu, ktorá túto technológiu ešte používa.

V niekoľkých minulých dieloch sme vytvorili jednoduchý slovníček s použitím MS-SQL databázy. Dnes si ukážeme, ako aplikáciu previesť do Microsoft SQL Server Compact.

SQL Server Compact (CE)

Microsoft SQL Server Compact Edition (niekedy označovaný len ako Microsoft SQL Server CE) je zjednodušená verzia Microsoft SQL Servera, ktorá je obsiahnutá len v niekoľkých DLL súboroch. Databáza je potom uložená ako jeden súbor na disku. Pokiaľ k našej aplikácii priložíme tieto súbory, bude fungovať na každom počítači, hoci tu Microsoft SQL server vôbec nebude nainštalovaný. Tomuto typu databázy sa niekedy hovorí embedded alebo portable. Hodí sa pre bežné aplikácie, ktoré posielame napr. priateľom alebo bežným užívateľom. Pre obchodné aplikácie sa takmer vždy využíva klasický Microsoft SQL Server.

SQL server plne podporuje základné SQL klauzuly a je tiež k dispozícii vo verzii Express, ktorú budeme používať. Oproti plnej verzii nepodporuje napr.:

  • DISTINCT v agregovaných funkciách
  • Uložené procedúry
  • Spúšte
  • Pohľady
Niektoré ďalšie funkcie má oproti plnej verzii orezané, napr. transakcie alebo práce s veľkými typmi stĺpcov, ako imidž. Vyčerpávajúce porovnanie SQL Servera CE a Microsoft SQL servera nájdete tu: http://technet.microsoft.com/…s172400.aspx

Použitie SQL Servera CE v C# .NET

Prepíšme príklad pre výpis všetkých slovíčok z minulého dielu pre SQL Server CE.

Vytvorenie databázy

Najprv si založíme novú databázu. Využijeme na to priamo Visual Studio. V DatabaseExplorere pridáme nové pripojenie.

Database explorer vo Visual Studio - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

Dáta source následne zmeníme na SQL Server Compact 4.0.

Microsoft SQL Server Compact Edition vo Visual Studio - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

Tlačítkom Create vyvoláme dialóg na vytvorenie nového súboru s databázou. Prejdeme až do zložky s našou aplikáciou (bin/debug). Databázu pomenujeme slovicka.sdf. Jazyk nastavíme na slovenčinu.

Nová SQL Server CE databázy vo Visual Studio - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

Všetko potvrdíme av DatabaseExplorere rozklikneme novú databázu a vytvoríme tu tabuľku, ktorú naplníme dátami. Verím, že to nemusím popisovať, je to podobné ako v Microsoft SQL Management Studio. Hotová tabuľka je vidieť na screenshote.

Návrh databázovej tabuľky pre Microsoft SQL Server CE vo Visual Studio - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

Dáta do tabuľky vložíme pravým klikom a zvolením Show table data:

Editácia dát v databáze pomocou Visual Studio - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

Upravenie projektu

K projektu musíme najskôr na SQL Server CE pridať referenciu. Inak nebudeme môcť používať jeho menné priestory. Referenciu pridáme v SolutionExplorere pravým kliknutím na References a potom na Add.

Pridanie referencie k C# .NET projektu vo Visual Studio - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

V dialógu zvolíme Assemblies -> Extensions a zaškrtneme checkbox pri System.Data.SqlSer­verCe 4.0.0.0.

Referencie na SQL Server CE vo Visual Studio - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

Teraz musíme upraviť zdrojový kód nášho projektu. Úprava bude veľmi jednoduchá, pridáme using System.Data.SqlSer­verCe a všetkým databázovým triedam pridáme do názvu Ce. Nesmieme zabudnúť zmeniť ConnectionString na relatívnu cestu k súboru s databázou.

string connectionString = @"Data Source=slovicka.sdf";
using (SqlCeConnection spojeni = new SqlCeConnection(connectionString))
{
    spojeni.Open();
    string dotaz = "SELECT * FROM Word";
    using (SqlCeDataAdapter adapter = new SqlCeDataAdapter(dotaz, spojeni))
    using (DataSet vysledky = new DataSet())
    {
        adapter.Fill(vysledky);
        foreach (DataRow radek in vysledky.Tables[0].Rows)
        {
            Console.WriteLine("Id: " + radek[0] + ", slovensky: " + radek["Czech"] + ", anglicky: " + radek["English"]);
        }
    }
    spojeni.Close();
    Console.ReadKey();
}

Projekt funguje úplne rovnako ako predtým, databáza však už nie je ako lokálne bežiaca služba, ale ako jednoduchý súbor.

Microsoft SQL Server Express v C# .NET - Databázy v C# - ADO.NET - Databázy v C# - ADO.NET

Kopírovanie súborov

Aby naša aplikácia fungovala, musíme k nej pribaliť Microsoft SQL Server CE. Otvoríme si nasledujúce umiestnenie

C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0

Je dôležité, aby ste vybrali Program Files (x86), budeme s našou aplikáciou distribuovať 32-bitovú verziu servera. Všetky dll súbory z tohto priečinka skopírujeme do priečinka bin/Debug nášho projektu.

Ďalej otvoríme:

C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop

A súbor System.Data.SqlSer­verCe.dll tiež skopírujeme. Pokiaľ budete chcieť používať v aplikácii Entity Framework, je potrebné skopírovať ešte dll zo zložky System.Data.SqlSer­verCe.Entity.

Aplikáciu môžete skúsiť poslať priateľom, bude im fungovať, aj keď nemajú nainštalovaný Microsoft SQL Server.

Záverom

V týchto troch dieloch sme si ukázali, ako sa v C# .NET pracuje s databázou pomocou MS-SQL dotazov. Nabudúce si ukážeme, ako sa s DB pracuje pomocou technológie LINQ TO SQL.

Čo sa týka ďalšej syntaxe MS-SQL, tak v seriáli ďalej nájdete mnoho otázok v príkladoch, ktoré ukazujú ako sa pokročilejšie otázky v MS-SQL zapisujú. Určite sa na ne pozrite. Dnešný projekt je ako vždy na stiahnutie v prílohe.


 

Stiahnuť

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

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

 

Predchádzajúci článok
Kvíz - Databáza v C# - ADO.NET
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