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
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.
Dáta source následne zmeníme na SQL Server Compact 4.0.
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.
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.
Dáta do tabuľky vložíme pravým klikom a zvolením Show table data:
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.
V dialógu zvolíme Assemblies -> Extensions a zaškrtneme checkbox pri System.Data.SqlServerCe 4.0.0.0.
Teraz musíme upraviť zdrojový kód nášho projektu. Úprava bude veľmi jednoduchá, pridáme using System.Data.SqlServerCe 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.
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.SqlServerCe.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.SqlServerCe.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#