WP8.1中使用Sqlite輕型資料庫開發教程

來源:互聯網
上載者:User

最近幾個月開始將WP8的應用遷移到WP8.1,發現很多API都變了。

最令我印象深刻也最意外的一點是:【找不到MessageBox】了。

臥槽,找不到MessageBox...(此處省略100字)

迴歸正題,在WP8階段,微軟為本機資料庫的操作提供了一系列API,需要的朋友可以通過:http://msdn.microsoft.com/zh-cn/library/hh202860查看。

不過在WP8.1(XAML)中這些API已經無法使用了,通過搜尋一些資料,最終把以前的一些本機資料庫操作API替換成Sqlite的版本。

步驟

1.建立一個WP8.1的項目。

2.畫一個簡單的UI,如圖:

 

 

app具有一個簡單的功能:將“姓名”和“年齡”資料儲存到資料庫表中。

app的下半部分是一個列表(現在沒有任何資料所以看不出來),用於顯示當前資料表中的所有資訊。

3.建立模型

public class Person     {         public int ID         {             get;             set;         }          public string Name         {             get;             set;         }          public int Age         {             get;             set;         }     }

4.依次選擇VS功能表列:【工具】--》【擴充和更新】-->【聯機搜尋Sqllite】,如圖:

 

 

下載Sqlite for windows phone8.1,我這裡已經下載好了。

5.下載安裝完畢之後需要重啟VS。

6.添加對Sqlite的引用,如圖:

 

 

7.接下來編譯會發生一個錯誤,需要將編譯架構調整為“ARM”或者“X86”.

8.添加的sqlite引用是C++開發的,在項目中沒有辦法直接使用。我們還需要在項目中添加一些別人封裝好的類。

9.開啟Nuget管理器,搜尋“Sqlite”,安裝“Sqlite-net”,如圖:

 

 

10.安裝完畢後會發現項目中多了兩個類,我們操作Sqlite資料庫主要也就是使用這兩個類中的方法和屬性。如圖:

 

 

11.接下來可以做點真正有意義的事情了。首先得我們需要告訴Sqlite哪個屬性是主鍵吧?

我們把“ID”作為主鍵。

ublic class Person     {         [PrimaryKey]         [AutoIncrement]         public int ID         {             get;             set;         }          public string Name         {             get;             set;         }          public int Age         {             get;             set;         }     }

特性"PrimaryKey"表明特性對應的屬性作為表的主鍵。“AutoIncrement”表明這是一個自增列。

12.建立Person表。

/// <summary>         /// 建立Person表         /// </summary>         /// <returns></returns>         private async Task<SQLiteAsyncConnection> CreatePersonTableAsync()         {             var conn = new SQLiteAsyncConnection(localDBPath);             await conn.CreateTableAsync<Person>();              return conn;         }

localDBPath是資料庫檔案的路徑。

我們可以通過返回的“SQLiteAsyncConnection”對象,對Person表進行增刪查改的操作。

13.目前為止,準備工作都做好了。可以書寫按鈕點擊事件的邏輯了。

private async void AddData_Tapped(object sender, TappedRoutedEventArgs e)         {             //構造Person對象             Person person = new Person();             person.Name = textboxName.Text;             person.Age = int.Parse(textboxAge.Text);              //插入到資料庫             var conn = await CreatePersonTableAsync();             await conn.InsertAsync(person);         }

需要注意的是CreateTableAsync方法並不會覆蓋掉已有的Table。

備忘

這篇文章主要協助一些不知道如何在WP8.1中使用Sqlite的朋友快速上手。

文章中貼出的代碼並沒有對一些異常做處理,實際項目中這是不可能的。主要是方便大家看到最精要的部分。

其他資料庫的操作方法我就不一一列舉了,查看“SQLiteAsync”類的代碼,5分鐘就可以知道可以通過SQLiteAsync做哪些事情。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.