码迷,mamicode.com
首页 > 数据库 > 详细

wp8.1 SQLite的基本使用

时间:2014-07-29 10:34:26      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   文件   数据   io   

SQLite是一个轻量级的关系型数据库,正是由于其精悍小巧,在移动端平台被广泛应用,但不适合处理大量数据和批量操作。它的底层是由C语言编写,最初设计是为了应用于嵌入式,占用资源非常低且简单易用,而且绝大部分程序语言都可以很好的与之结合。在.net中它的sdk中支持linq实现方式,使用更加方便。

sdk安装。

bubuko.com,布布扣

安装好了之后,我们引用dll。

bubuko.com,布布扣

这时候出现这样的错误,这是由于sdk只支持arm和32位的编译环境。

bubuko.com,布布扣

可以将通过项目属性将平台目标选为32位。

bubuko.com,布布扣

接下来还需要安装sqlite-net,可以这行package console的shell命令。

bubuko.com,布布扣

这时候我们的项目中会出现两个cs文件。

bubuko.com,布布扣

 

接下来我们来验证一下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     else
10     {
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 }

 

wp8.1 SQLite的基本使用,布布扣,bubuko.com

wp8.1 SQLite的基本使用

标签:style   blog   http   color   使用   文件   数据   io   

原文地址:http://www.cnblogs.com/yuefei/p/3873610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!