开发环境:Windows 8.1

开发工具:Visual Studio Express 2013 for Windows

SQLite数据库介绍

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项目组已经为我们制作好了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中方法,并重新进行了封装,使得方法大部分支持异步调用,极大的方便了我们使用。

SQLite-net的使用

    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 == )
{
_Conn.CreateTable<Password>();//如果没有此数据库表,就创建
}
}
return _Conn;
}
}
}

参考引用:

数据库系统在WinRT中的使用(二)Part 1:SQLite的使用

wp8.1 SQLite的基本使用

Windows Phone8 中如何引用 SQLite 数据库

轻量级本地数据库SQLite在WinRT的使用的更多相关文章

  1. [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)

    以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...

  2. Python信息采集器使用轻量级关系型数据库SQLite

    1,引言Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.SQLite作为后端数据库,可以搭配Python建网站,或者为python网络爬虫存储数据.SQLite还在其它 ...

  3. QT 创建本地数据库(SQLite数据库)存储数据

    注意:QT自带SQLITE数据库,不需要再安装 1.创建一个包含创建.查询.修改和删除数据库的数据库类(DataBase) DataBase.h头文件 #pragma once #include &l ...

  4. .db轻量级本地数据库

    1.概述: db文件一般是数据库数据存放文件. db是datebase的缩写,是数据库文件. 我们可以简单的理解为db是本地轻量级数据库(用了缓存,储存少量本地数据,防止断电等突发意外的发生对我们的程 ...

  5. iOS:本地数据库sqlite的介绍

    一.数据库的概念: 1..什么是数据库 SQL Server 2010.Oracle.MySQL 关系数据库 NoSQL数据库-非关系型数据库   数据库主要由表组成 表由字段组成 数据 就是表中的记 ...

  6. Unity连接本地数据库sqlite

    首先要创建一个sqlite的数据库,记住文件地址,拷贝到Assets目录下,创建的数据库文件后缀为.sqlite.具体创建方法百度sqlite 然后百度Mono.Data.Sqlite,这是一个dll ...

  7. android 本地数据库sqlite的封装

    单机android   sqlite数据库的实现,这个数据库可与程序一起生成在安装包中 一.下载sqlite3.exe文件 二.运行 cmd 转到sqlite3.exe 所在目录  运行 sqlite ...

  8. HTML5本地数据库(SQLite)示例

    本文转载自http://blog.sina.com.cn/s/blog_641cf27f01016pm5.html 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite ...

  9. (转)HTML5 本地数据库(SQLite) 示例

      HTML5 本地数据库(SQLite) 示例 2012-05-07 16:21:13 标签:SQLite HTML5本地数据库 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作 ...

随机推荐

  1. Java 二进制和十进制互转,二进制和BitSet互转

    /** * 二进制转十进制 * * @param binaryNumber * @return */ public static int binaryToDecimal(int binaryNumbe ...

  2. Java 接口(interface)的三种类型

    放入接口中的任何域(成员变量)都自动是 static 和 final 的: 1. 包含抽象方法的常规接口 2. 全部是常量的 接口类中的方法和属性不要添加任何修饰符号(public 也不需要). 因为 ...

  3. P2532 [AHOI2012]树屋阶梯 卡特兰数

    这个题是一个卡特兰数的裸题,为什么呢?因为可以通过划分来导出递推式从而判断是卡特兰数,然后直接上公式就行了.卡特兰数的公式见链接. https://www.luogu.org/problemnew/s ...

  4. B1295 [SCOI2009]最长距离 最短路

    就是一道最短路的裸题,直接跑spfa就行了.(spfa死了) 最后在答案处判断是否障碍物太多,然后就直接找最大值就行. (数据特别水,我错误算法60) 题干: Description windy有一块 ...

  5. 关于逆元&&lucas定理

    lucas是求组合数C(m,n)%p,有一个公式:C(m,n) = C(m/p,n/p)*C(m%p,n%p). (a*b)%c==a%c*b%c,但是(a/b)%c!=a%c/b%c,所以我们要算b ...

  6. 0428-mysql(事务、权限)

    1.事务 “事务”是一种可以保证“多条语句一次性执行完成”或“一条都不执行”的机制. 两种开始事务的方法: 1.set  autocommit = 0; //false,此时不再是一条语句一个事务了, ...

  7. 《疯狂Python讲义》重要笔记——Python简介

    简介 Python是一种面向对象.解释型.弱类型的脚本语言,同时也是一种功能强大的通过语言,它提供了高效的高级数据结构,还有简单有效的面向对象编程. 在大数据.人工智能(AI)领域应用广泛,因此变得流 ...

  8. spring jdbc、事务(三)

    spring整合jdbc spring中提供了一个可以操作数据库的对象(JDBCTemplate),对象封装了jdbc技术. 1.使用spring整合jdbc需要jdbc驱动.c3p0连接池.spri ...

  9. Java实现九宫格

    import java.util.Scanner; public class Sudoku { public static void main(String[] args) { System.out. ...

  10. c++ 虚函数,纯虚函数的本质区别

    转载博客:https://mp.weixin.qq.com/s?__biz=MzAxNzYzMTU0Ng==&mid=2651289202&idx=1&sn=431ffd1fa ...