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.
Dáta source následne zmeníme na SQL Server Compact 4.0.
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.
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.
Dáta do tabuľky vložíme pravým klikom a zvolením Show table dáta:
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.
V dialógu zvolíme Assemblies -> Extensions a zaškrtneme checkbox u 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] + ", č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.
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.SqlServerCe.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.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 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#