图解Win 10 应用开发之Sqlite 数据库的简单用法
尽管目前 UWP-RT 库中还没有自带操作Sqlite数据库的API,不过,真要使用的话也不难,因为通过 Nuget ,我们其实可以获取很多支持 Sqlite 操作的第三方组件,当然了,组件虽多,但不是个个都好用,有的会发生这样那样的错误。目前找到一个比较不错的,而且支持 LINQ 操作。
方法/步骤
- 1
在VS 中新建一个 UWP 应用项目。
在 解决方案资源管理器 窗口中的 引用 节点上右击,然后执行 管理NuGet程序包菜单。
查找并安装以下两个组件,如下图所示:
注:
-> SQLite.WUP.Native是必须安装的,它是封装sqlite操作函数的本地库,如果你用的是C++语言来开发,可以直接调用。如果不安装这个,在运行时会报找不到 sqlite3.dll 的错误。
-> SQLiteWrapperUWP-PCL也应该安装,它对sqlite的操作接口进行进一步封装,并且支持 LINQ 处理。

安装成功后,在引用列表会看到相关条目,如下图所示:

在代码中引入以下相关的命名空间,如下图所示:

要连接并创建表,要使用 SQLiteConnection 类,在构造实例时,用到两个必须的参数(其他参数可选):
sqlitePlatform:类型是 ISQLitePlatform 接口,它的实现类型是 SQLitePlatformWinRT ;
databasePath:数据库文件的路径,注意,由于UWP应用默认允许访问的路径不多,通常是本地目录。为了避免发生异常,可以通过 ApplicationData类来获取localFolder实例,然后从目录实例的 Path 属性得到本地目录的完整路径,再传递给该参数。
比如这样建立连接,如下图所示:
当连接完不再需要时, 可以调用Dispose方法释放掉,或者干脆把连接的实例化放到一个 using 语句块中。

定义数据表模型,比如,我定义了一个 Student 类,它表示一张表,如下图所示:
注:对于要用于建表的类,要加上 Table 特性,对于属性,其实是映射到列,要加上Column特性。AutoImcrement特性表示字段的数值是自增长列。

创建表。实例化数据库连接后,可以调用连接对象的 CreateTable 方法直接创建表,如下图所示:
CreateTable方法如果返回0,表明表创建无误。

插入数据。实例化连接对象后,访问 Insert 方法插入单条数据;InsertAll 方法插入多条数据;InsertOrReplace插入数据并替换已存在的记录;InsertOrReplaceAll 插入多条数据,并替换已存在项,如下图所示:
上面代码先用DeleteAll方法删除表中的所有记录,然后插入四条记录,插入方法返回已成功写入的记录数目,上面代码应返回 4 。

查询数据。可以用 LINQ 来查询,如下图所示:
Table 方法返回一个 TableQuery实例,然后可以用 LINQ语句来处理。本例中筛选所有数据,并接照Age属性升序排列。

运行效果如下图所示:

图解Win 10 应用开发之Sqlite 数据库的简单用法的更多相关文章
- 【Win 10 应用开发】Sqlite 数据库的简单用法
如果老周没记错的话,园子里曾经有朋友写过如何在 UWP 项目中使用 Sqlite数据库的文章.目前我们都是使用第三方封装的库,将来,SDK会加入对 Sqlite 的支持. 尽管目前 UWP-RT 库中 ...
- Unity3D游戏开发之SQLite让数据库开发更简单
各位朋友大家好.欢迎大家关注我的博客,我是秦元培,我是博客地址是http://blog.csdn.net/qinyuanpei.在经历了一段时间的忙碌后,博主最终有时间来研究新的东西啦,今天博客向和大 ...
- Android开发之Sqlite的使用
在Android中存储数据可以用文件.数据库.网络,其中文件和数据库是最常用的,数据库我们常用的就是Sqlite,它是一种经量级的.嵌入式的关系型数据库:在android中当需要操作SQLite数据库 ...
- Android开发之SQLite的使用方法
前言 SQLite是一种轻量级的小型数据库,虽然比较小,但是功能相对比较完善,一些常见的数据库基本功能也具有,在现在的嵌入式系统中使用该数据库的比较多,因为它占用系统资源很少.Android系统中也不 ...
- [转]ANDROID开发之SQLite详解
SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLit ...
- ANDROID 开发之 SQLite
SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLit ...
- sqlite数据库的基本用法及C语言的API接口简介
********************sqlite数据库******************** http://www.sqlite.org/c3ref/intro.html 1-- 安装数据库: ...
- 李洪强iOS开发之-sql数据库的使用
一,创建工程 二: 导入头文件 三:导入 四: 数据库增删改查 //因为是结构体类型,所以用assign //1.创建数据库(保存路径) @property(nonatomic,assign)sqli ...
- Ios开发之sqlite
Sqlite是ios数据存储的一个重要手段,今天我们就一块来看一下,怎样使用sqlite将数据存储到沙盒中去. 第一步:导入一个框架libsqlite3.0.dylib 选中TARGETS在Gener ...
随机推荐
- 前端-js基础
HTML三把利剑之一,浏览器具有解析js的能力 一.js基础 在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时, ...
- C语言:for语句原理及具体执行过程
#include <stdio.h> int main() { int i,s=0; for(i=1;;i*=2) { s=s+i; if(i%3==0) break; i=i+2; pr ...
- JAVA基础(代码)练习题61~90
JAVA基础 61.设计一个方法打印数组{'a','r','g','s','e','r'}中下标为1和3的的元素 package Homework_90; /** * 设计一个方法打印数组{'a',' ...
- Redis主从复制那点事
我们在 Redis持久化机制你学会了吗?学习了AOF和RDB,如果Redis宕机,他们分别通过回放日志和重新读入RDB文件的方式恢复数据,从而提高可靠性.我们今天来想这么一个问题,假如我们 ...
- FormData提交文件(十四)
问题 在通过ajax提交表单时,表单中有Excel文件,在后台还需要读取excel文件中的数据,普通的提交方式无法实现.可以通过创建FormData对象的方式. 代码示例: 前端: 创建想要提交的fo ...
- python里面的MD5加密 ---# hashlib包的使用
在应用程序的接口里,常用到签名:其中签名里用到MD5加密,这里用hashlib实现 hashlib 概念:Hash,译做"散列",也有直接音译为"哈希"的.把任 ...
- odoo14通过命令行启动以及报错进不去系统问题解决办法
一.通过CMD命令界面启动odoo:进入odoo-bin目录下:执行 python odoo-bin -c odoo.conf 二.pycharm配置自动安装升级模块:-c E:\odoo14\od ...
- C++第四十二篇 -- CPU Usage
前言 目的:读取并控制CPU占用率 近期在做CPU Usage方面的事情,让CPU以一种高占用率的状态运行一定的时间,需要读取CPU各个核的占用率,网上关于这方面的资料好少,FQ也只找到了一个WMI的 ...
- 通过Xlib枚举指定进程下所有窗体
在windows系统下如果想要枚举指定进程的窗体,我们可以通过EnumWindows加上自己实现的回调函数进行实现,那么在linux下该如何做呢? 其实也很简单,在linux下,我们可以通过xlib中 ...
- 在nodejs中利用 Proxy监听对象值的获取
1 window = new Proxy(global, { 2 get: function (target, key, receiver) { 3 console.log("window. ...