开发环境: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. 通过指针访问C++对象的私有成员

    C++对象的私有成员是禁止类外的访问的.但是我们仍然可以通过指针访问C++对象的私有成员. #include <iostream> using namespace std; class A ...

  2. log4net preserveLogFileNameExtension 和 watch

    preserveLogFileNameExtension <log4net> <appender name="fileappender" type="l ...

  3. java jdk 管理工具

    官网:http://www.jenv.be/ 安装: Linux / OS X $ git clone https://github.com/gcuisinier/jenv.git ~/.jenv M ...

  4. 机器人走迷宫(dfs)

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1590 #include <stdio.h ...

  5. vue 使用localStorage保存页面变量到浏览器变量中

    const STORAGE_KEY = 'todos-vuejs'//定义常量保存键值 export default{ fetch(){ return JSON.parse(window.localS ...

  6. Redis 字符串结构和常用命令

    字符串是 Redis 最基本的数据结构,它将以一个键 和一个值 储存在 Redis 内部. 字符串的一些基本命令 命令 说明 备注 set key value 设置键值对 最常用的写入命令 get k ...

  7. windows 装XP系统

    笔记本型号:HPCQ40-506AX 1.在BIOS中更改启动顺序:将USB设为第一启动项2.插入装有PE系统的USB设备3.开机后一直按F124.到达选择系统界面,目前我的HPCQ40用其他系统进去 ...

  8. CSS多列布局(实例)

    前言 一列布局 二列布局 三列布局 1 一列布局 一列布局: HTML部分 <!DOCTYPE html> <html> <head> <meta chars ...

  9. Bootstrap3.0的栅格布局系统实现原理

    这个标题取的有点奇怪,怪我翻译的有问题吧.英文学平有限,有道词典和google翻译齐上阵是必须的.还好翻译的不是小说,对于技术文章,还是能勉强翻过来的. 本文主要讲解了Bootstrap3.0的栅格布 ...

  10. L4课程_Firebase_笔记分享_StudyJams_2017

    最近才发现Study Jams China的官方论坛也支持MarkDown,所以就直接把笔记发在了那儿. http://www.studyjamscn.com/thread-21855-1-1.htm ...