SQLite for WinRT 笔记

——Win8 App开发中常常需要使用到数据库,而由于其架构,XML是一个不错的选择,但由于其本身效率问题,只适合少量数据。对于稍大一点的数据存放,我们只能使用一些轻量级数据库。而这些轻量级数据库中,最好用的就数SQLite了。SQLite跨多平台,早在Android和Windows Phone等平台中就有很多使用。同时,据说支持与线上服务器同步数据更新管理等高级功能,这一点还有待验证。

1. 项目中使用SQLite

1.1. 在项目“引用”中添加:

clip_image001

1.2. 在解决方案属性,修改“配置属性”-“属性”中平台为相应平台,不能为Any CPU,如x86,x64,ARM。

clip_image003

1.3. 在工程-管理NuGet程序包,联机搜索sqlite-net,并安装。

clip_image005

此时,工程中将会加入2个文件:

clip_image006

 

 

2. SQLite的详细使用

2.1. 数据类

   1: class DB_Status
   2: {
   3:     [SQLite.AutoIncrement, SQLite.PrimaryKey]
   4:  
   5:     public int ID { get; set; }
   6:     public int Type { get; set; }
   7:     public string Content { get; set; }
   8:     public DateTime Moment { get; set; }
   9: }

2.2. 数据库连接

   1: db_Path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db");
   2: db_Conn = new SQLiteConnection(db_Path);

2.3. 数据库基本操作

//创建表
db_Conn.CreateTable<DB_Status>();
//插入单条记录
db_Conn.Insert(new DB_Status());
//插入多条记录
db_Conn.InsertAll(new List<DB_Status>());
//执行其他SQL命令
SQLiteCommand cmd = db.CreateCommand("update db_memo set Content='" + _DB_Memo.Content + "' where ID='" + _DB_Memo.ID + "'");
cmd.ExecuteNonQuery();
//条件查询返回列表
List<object> list = db.Query(new TableMapping(typeof(DB_Status)), "select *  from  DB_Status");
//返回某个表
Var db_status = db.Table<DB_Status>();
List<DB_Status> db_status.ToList();
//单行删除操作
db.Delete<DB_Status>(new DB_Status() { ID = 1 });
//多行删除
db.DeleteAll<DB_Status>();
posted @ 2013-02-07 09:03  slim1992  阅读(274)  评论(0)    收藏  举报