UWP開發隨筆——使用SQLite數據庫


摘要

大多數的app都需要數據存儲,在數據存儲這方面,強大的windows把app數據分為兩種:settings和files,並提供了十分簡潔的api,讓開發者能夠輕松使用。但是在有些場景下,app的數據存儲需要有database的支持,而sqlite,由於它輕量、高效、跨平台的特性,已經成為移動客戶端開發中不可或缺的一部分。今天,小編就簡單介紹一下如何在uwp開發中使用sqlite數據庫。

環境配置

1.下載和安裝SQLite

要使用sqlite,首先是要從sqlite.org下載SQLite啦,附上下載頁的鏈接http://sqlite.org/download.html,然后選擇UAP的版本:

下載下來的是一個VSIX的安裝包,安裝后重啟VS,選擇Tools -> Extensions and Updates… -> Installed -> SDKs中,會看到SQLite for Universal App Platform,說明SQLite已經安裝完成!!

 

2.在工程中添加對SQLite的引用

現在,在我們的VS中,已經有了SQLite的集成,在相應工程目錄下添加對SQLite的引用即可,右鍵點擊References –> Add Reference,選擇對SQLite的添加。

 

3.添加.Net支持

如果要使用C#的開發,還需要對工程本身進行進一步的配置,這就需要NuGet的幫助了。

右鍵點擊工程名,選擇Manage NuGet Packages…,然后搜索SQLitePCL,Install即可。

安裝完成后,在Project的References里,便會多出一個SQLitePCL的引用。

圖中紅色方塊里圈出的部分,其中上面的是對SQLite的引用,下面的是對SQLitePCL的引用。

在此完成之后,就可以使用SQLite開發了!!當然,在相應的文件中,不要忘了添加using SQLitePCL哦!!

 

定義SQL語句常量

在實際開發中,通常是把SQL語句統一起來進行管理,有的開發者在使用db過程中也喜歡使用一些Contract來使編碼更加規范,為了更加清晰明了,這里只提供一些最基本的SQL語句供大家參考。

        private static String DB_NAME = "SQLiteSample.db";
        private static String TABLE_NAME = "SampleTable";
        private static String SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (Key TEXT,Value TEXT);";
        private static String SQL_QUERY_VALUE = "SELECT Value FROM " + TABLE_NAME + " WHERE Key = (?);";
        private static String SQL_INSERT = "INSERT INTO " + TABLE_NAME + " VALUES(?,?);";
        private static String SQL_UPDATE = "UPDATE " + TABLE_NAME + " SET Value = ? WHERE Key = ?";
        private static String SQL_DELETE = "DELETE FROM " + TABLE_NAME + " WHERE Key = ?"

建立第一張表

當你定義好一些SQL命令之后,就可以對數據庫進行一系列的操作,最基本的當然是create table啦,以下給出實例代碼:

_connection = new SQLiteConnection(DB_NAME);
using (var statement = _connection.Prepare(SQL_CREATE_TABLE))
{
    statement.Step();
}

由於執行SQL語句的代碼大致一樣,所以不過多贅述,給出樣例代碼,其中key和value都是String變量。

INSERT

using (var statement = _connection.Prepare(SQL_INSERT))
{
    statement.Bind(1, key);
    statement.Bind(2, value);
    statement.Step();
}

DELETE

using (var statement = _connection.Prepare(SQL_DELETE))
{
    statement.Bind(1, key);
    statement.Step();
}

UPDATE

using(var statement = _connection.Prepare(SQL_UPDATE))
{
    statement.Bind(1, value);
    statement.Bind(2, key);
    statement.Step();
}

QUERY

using (var statement = _connection.Prepare(SQL_QUERY_VALUE))
{
    statement.Bind(1, key);
    SQLiteResult result = statement.Step();
    if (SQLiteResult.ROW == result)
    {
        value = statement[0] as String;
    }
}

值得說明的是,在statement執行Step()的過程中,會返回一個SQLiteResult的返回值,在遍歷返回結果的過程中,判斷result是不是SQLiteResult.ROW就可以,關於SQLiteResult的具體內容,請參考SQLite.org的文檔說明。

其它

說了半天使用SQLite開發,那么我們創建出來的數據庫究竟在存放在哪里呢?系統默認是放在這個路徑的:C:\Users\(username)\AppData\Local\Packages\(packagename)\LocalState,其中username當然就不用小編解釋了,當然就是您的用戶名嘍!packagename可以在工程目錄里面的Package.appxmanifest文件里查看,如圖:

 

 

在這個路徑下,我們能找到以我們的DB_NAME命名的文件,如SQLiteSample.db。

那么,我們怎么才能查看這種數據庫呢,這里有許多第三方工具可以使用,小編比較推薦SQLite Expert,界面簡單友好,使用方便,並且有personal的版本,完全免費哦。

結語

在uwp開發中,使用SQLite是一件很簡單的事情,配合windows強大的存儲功能和簡潔的開發接口,讓我們一起來開發美妙的uwp application吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM