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í.

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

Článok pojednáva o technológiu, 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. Ak 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 klauzula 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úšť
  • pohľady

Niektoré ďalšie funkcie má oproti plnej verzii orezané, napr. Transakcie alebo práca s veľkými typmi stĺpcov, ako image. Vyčerpávajúce nákupný SQL Servera CE a Microsoft SQL serveru 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 DatabaseExploreru pridáme nové pripojenie.

Database explorer vo Visual Studio - 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

Tlačidlom 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

Všetko potvrdíme a v DatabaseExploreru rozkliknite 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

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

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

Upravenie projektu

K projektu musíme najprv na SQL Server CE pridať referenciu. Inak nebudeme môcť používať jeho menné priestory. Referenciu pridáme v SolutionExploreru 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

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

Referencie na SQL Server CE vo Visual Studio - 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] + ", česky: " + 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žiaci služba, ale ako jednoduchý súbor.

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

Kopírovanie súborov

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

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 tejto zložky skopírujeme do zložky 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. Ak budete chcieť používať v aplikácii Entity Framework, je potrebné skopírovať ešte dll z priečinka 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 k stiahnutiu v prílohe.

V nasledujúcom cvičení, Riešené úlohy k 7.-8. lekciu Databáza v C# - ADO.NET, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

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
DataSet druhýkrát
Všetky články v sekcii
Databázy v C # - ADO.NET
Preskočiť článok
(neodporúčame)
Riešené úlohy k 7.-8. lekciu Databáza 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