轻量级本地数据库SQLite在WinRT的使用
开发环境: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的使用
Windows Phone8 中如何引用 SQLite 数据库
轻量级本地数据库SQLite在WinRT的使用的更多相关文章
- [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)
以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...
- Python信息采集器使用轻量级关系型数据库SQLite
1,引言Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.SQLite作为后端数据库,可以搭配Python建网站,或者为python网络爬虫存储数据.SQLite还在其它 ...
- QT 创建本地数据库(SQLite数据库)存储数据
注意:QT自带SQLITE数据库,不需要再安装 1.创建一个包含创建.查询.修改和删除数据库的数据库类(DataBase) DataBase.h头文件 #pragma once #include &l ...
- .db轻量级本地数据库
1.概述: db文件一般是数据库数据存放文件. db是datebase的缩写,是数据库文件. 我们可以简单的理解为db是本地轻量级数据库(用了缓存,储存少量本地数据,防止断电等突发意外的发生对我们的程 ...
- iOS:本地数据库sqlite的介绍
一.数据库的概念: 1..什么是数据库 SQL Server 2010.Oracle.MySQL 关系数据库 NoSQL数据库-非关系型数据库 数据库主要由表组成 表由字段组成 数据 就是表中的记 ...
- Unity连接本地数据库sqlite
首先要创建一个sqlite的数据库,记住文件地址,拷贝到Assets目录下,创建的数据库文件后缀为.sqlite.具体创建方法百度sqlite 然后百度Mono.Data.Sqlite,这是一个dll ...
- android 本地数据库sqlite的封装
单机android sqlite数据库的实现,这个数据库可与程序一起生成在安装包中 一.下载sqlite3.exe文件 二.运行 cmd 转到sqlite3.exe 所在目录 运行 sqlite ...
- HTML5本地数据库(SQLite)示例
本文转载自http://blog.sina.com.cn/s/blog_641cf27f01016pm5.html 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite ...
- (转)HTML5 本地数据库(SQLite) 示例
HTML5 本地数据库(SQLite) 示例 2012-05-07 16:21:13 标签:SQLite HTML5本地数据库 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作 ...
随机推荐
- Android之使用MediaMetadataRetriever类获取视频第一帧
一.首先,来介绍一下MediaMetadataRetriever类,此类位于android.media包下,这里,先附上可查看此类的API地址:MediaMetadataRetriever类.大家能够 ...
- 【最短路算法】Dijkstra知识点&代码
代码: #include<iostream> #include<vector> #include<cstdio> #include<queue> #in ...
- hdu1704——floyd
Problem Description there are N ACMers in HDU team.ZJPCPC Sunny Cup 2007 is coming, and lcy want to ...
- c++ 写进文件并读出
#include <iostream>#include <fstream>#include <vector>#include <string> int ...
- 803E
dp dp[i][j]表示到了i赢和输的差为j 如果这位是?向dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1]转移,如果是W向dp[i-1][j-1]转移,如果是L向dp[i- ...
- 理解了这些词句涵义用法等,你就熟练ES6了。
let const 块级作用于 暂时性死区 解构赋值:变量的解构赋值.对象的解构赋值.字符串的解构赋值.数值和布尔值的解构赋值. String的扩展 正则表达式的扩展 Number的扩展 Array的 ...
- ThreadLocal,静态变量,实例变量,局部变量的线程安全
之前都是业务层次开发,现在公司进行的网络编程,一下子要了解太多java底层的东西并进行应用,我现在边学习边应用.由于知识能力有限,在上次发博客时出现了一个小小的纰漏,而这个纰漏被细心的博友发现了. 首 ...
- Unity引擎的Player Settings介绍
我用的是unity5.4.3版本的 一.窗口打开: 从菜单栏查看播放器设置,选择 Edit->Project Settings->Player 二.全局设置 第一部分: Company N ...
- PHP安装环境搭建
一. 安装PHP运行服务器 xampps-x64 二.安装PHP程序编辑软件(Zend Studo需要破解) 安装后打开,再关闭 把com.zend.php.core_10.6.0.v20140128 ...
- js遍历对象属性
对象虽然与数组一样,都是数据的集合. 因为对象中的数据是处于无序状态,不能像数组那样,使用下标来遍历对象的所有属性. 如果要遍历对象属性,就必须要使用for in 语句. var a={ A1=180 ...