Jak zprovoznit SQLite v Windows 8 Apps

⚠️ Pozor: obrázky z tohoto příspěvku se ztratily při výpadku v roce 2016. Chybějící obrázky nahradí automaticky vtipným placeholderem plugin Broken Image Placeholder.

1)Prvně si stáhněte a nainstalujte VSIX SQLite pro Windows RT. Toto jsem asi v žádném tutoriálu nenašel:

http://www.sqlite.org/download.html

2)Změňte typ kompilace projektu do x86(najdete to v horní liště, měli byste tam původně mít “Any CPU”).

3)Nyní přidejte v Add Reference -> Windows -> Extensions -> SQLite for Windows Runtime. Pak to bude ve vašich referencích vypadat takto:


Reference po pridani SQLiteRT

Toto samotné pouze přidá podporu pro SQLite, ale nikoliv žádné třídy ani jiné prvky kódu.

4)Otevřete si Nuget Package Manager a vyhledejte sqlite-net:


Vyhledani sqlite-net v nuget manageru

5)sqlite-net vám nepřidá žádnou referenci do projektu ale vytvoří vám 2 soubory:


Soubory po pridani sqlite-net

6)Napište si třídu, která bude odpovídat 1 řádku v tabulce. Nezapomeňte 1 řádku přidat atribut PrimaryKey:

C#
class Row
{
    [PrimaryKey()]
    public int ID
    {
        get; set;
    }
    public string Retezec
    {
        get; set;
    }
}

7)Napište si kód, který bude tuto třídu využívat. Více jak se SQLite ve Windows 8 používá vám napoví můj ukázkový kód(pomocí debuggeru a breakpointu si pak vyzkoušejte že se vám řádek který jste vytvořili v klazuli if vytvořil):

C#
string cestaKDatabazi = Windows.Storage.ApplicationData.Current.LocalFolder.Path + "db.db3";
SQLiteConnection conn = new SQLiteConnection(cestaKDatabazi);
Row row = null;
bool insert = false;
if (insert)
{
    row = new Row();
    row.ID = 1;
    row.Retezec = "Retezec do DB";
    conn.CreateTable<Row>();
    conn.Insert(row);
}
else
{
    row = conn.Get<Row>(1);
} </Row></Row>

A to je všechno. Snad toto bude někomu k užitku. Ještě jsem na začátek zapomněl dodat – pokud toto chcete vyzkoušet, musíte mít Visual Studio Express 2012 for Windows 8 nebo novější.

Leave a Reply

Your email address will not be published. Required fields are marked *