wp8.1 SQLite的基本使用

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   檔案   資料   io   

SQLite是一個輕量級的關係型資料庫,正是由於其精悍小巧,在移動端平台被廣泛應用,但不適合處理大量資料和大量操作。它的底層是由C語言編寫,最初設計是為了應用於嵌入式,佔用資源非常低且簡單易用,而且絕大部分程式語言都可以很好的與之結合。在.net中它的sdk中支援linq實現方式,使用更加方便。

sdk安裝。

安裝好了之後,我們引用dll。

這時候出現這樣的錯誤,這是由於sdk只支援arm和32位的編譯環境。

可以將通過項目屬性將平台目標選為32位。

接下來還需要安裝sqlite-net,可以這行package console的shell命令。

這時候我們的項目中會出現兩個cs檔案。

 

接下來我們來驗證一下sdk,首先建立一個表對象。

 1 using System; 2 using SQLite; 3  4 namespace FY.Weather.DataModel 5 { 6     [Table("Temp")] 7     public class Temp 8     { 9         [PrimaryKey, AutoIncrement]10         public int Id { get; set; }11 12         public string JsonData { get; set; }13 14         public DateTime CreationDate { get; set; }15     }16 }

調用sdk建立表。

1 private async void CreateTemp()2 {3     string dbName = ViewModelLocator.Instance.DBName;4     if (!await Common.CheckFileAsync(dbName))5     {6         SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(dbName);7         await conn.CreateTableAsync<Temp>();8     }9 }

 擷取表資料。

 1 private async System.Threading.Tasks.Task<Temp> GetTemp(int id) 2 { 3     SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(ViewModelLocator.Instance.DBName); 4     var query = await conn.QueryAsync<Temp>("select * from temp where id=?", new object[] { id }); 5     if (query != null && query.Count > 0) 6     { 7         return query[0]; 8     } 9     return null;10 }

添加修改資料。

 1 private async void AddOrEditTemp(Temp temp) 2 { 3     SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(ViewModelLocator.Instance.DBName); 4     var query = await conn.QueryAsync<Temp>("select * from temp where id=?", new object[] { temp.Id }); 5     if (query != null && query.Count > 0) 6     { 7         await conn.UpdateAsync(temp); 8     } 9     else10     {11         await conn.InsertAsync(temp);12     }13 }

驗證資料庫檔案是否存在。

 1 public static async System.Threading.Tasks.Task<bool> CheckFileAsync(string fileName) 2 { 3     bool fileIsExist = true; 4     try 5     { 6         Windows.Storage.StorageFile sf = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(fileName); 7     } 8     catch 9     {10         fileIsExist = false;11     }12     return fileIsExist;13 }

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.