标签:
开发环境:Windows 8.1
开发工具:Visual Studio Express 2013 for Windows
1.SQLite是一款轻型的嵌入式数据库,使用C++开发,使用非常广泛
2.SQLite是一款跨平台的数据库,支持Windows、Linux、Android、IOS、Windows Phone系统
3.在Windows Phone中的SQLite是一个非托管组件
4.可以在Windows运行时中使用,也可以在C#项目中使用
5.在C#项目中需要通过Windows运行时组件来访问
6.跟大部分数据库的“客户端/服务器端”的模式不同,SQLite并不运行在一个独立的进程中,而是嵌入到程序中成为程序中的一部分。在同一个进程中进行数据操作有着比进程之间通讯更加高的效率
7.整个数据库(定义,表,数据等)存储到一个单一的文件中,使得数据库迁移变得更加方便。
SQLite项目组已经为我们制作好了SQLite for Windows Runtime,并将之做成了一个VS扩展,使得使用起来更加方便。
http://www.sqlite.org/download.html 下载并安装以下两个插件
安装完毕之后就可以在项目右键添加引用添加C++ Runtime Package和SQLite Package
引用之后sqlite是以dll形式存在的,如果我们需要使用dll中封装的方法我们需要使用P/Invoke的方法并自己在应用中重新封装工作量巨大。推荐使用sqlite-net。这是一个开源的轻量级的库,可以让.Net平台操作sqlite数据库。我们可以通过nuget获得:
完成之后我们将会得到两个文件:
这其中不仅通过P/Invoke调用大量的dll中方法,并重新进行了封装,使得方法大部分支持异步调用,极大的方便了我们使用。
public static class PasswordController { public static List<Password> GetAll() { var query = Common.Conn.Table<Password>(); return query.ToList(); }
public static Password Get(int id) { var query =Common.Conn.Table<Password>().Where(p => p.Id == id); if (query != null) { return query.FirstOrDefault(); //return query.ToList()[0]; } return null; }
public static void Edit(Password pw) { var query = Common.Conn.Table<Password>().Where(p => p.Id == pw.Id); if (query != null) { Common.Conn.Update(pw); } } public static void Add(Password pw) { Common.Conn.Insert(pw); }
public static void Delete(int id) { var query = Common.Conn.Table<Password>().Where(p => p.Id == id); if (query != null) { Common.Conn.Delete(query.FirstOrDefault()); } } }
static class Common { private const string DbName = "safebox.db";//"db.sqlite";
private static SQLiteConnection _Conn; public static SQLiteConnection Conn { get { if (_Conn == null) { string DbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, DbName); _Conn = new SQLiteConnection(DbPath);//指定本地文件夹创建数据库连接 List<SQLiteConnection.ColumnInfo> PasswordCis = _Conn.GetTableInfo("Password");//貌似不区分大小写,_Conn.GetTableInfo("password")一样效果 if (PasswordCis.Count == 0) { _Conn.CreateTable<Password>();//如果没有此数据库表,就创建 } } return _Conn; } } }
数据库系统在WinRT中的使用(二)Part 1:SQLite的使用
Windows Phone8 中如何引用 SQLite 数据库
标签:
原文地址:http://www.cnblogs.com/AlvinLiang/p/4446961.html