图解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 ...
随机推荐
- 用 SwiftUI 五天组装一个微信
GitHub 链接:SwiftUI-WeChatDemo 效果图 实装内容 4 个 Tab 页面 + 聊天界面,使用纯 SwiftUI 搭建而成 应用启动界面 Launch Screen 国际化及应用 ...
- Quick BI的复杂系统为例:那些年,我们一起做过的性能优化
背景 一直以来,性能都是技术层面不可避开的话题,尤其在中大型复杂项目中.犹如汽车整车性能,追求极速的同时,还要保障舒适性和实用性,而在汽车制造的每个环节.零件整合情况.发动机调校等等,都会最终影响用户 ...
- flutter实战demo,仿luckin coffee。
flutter_luckin_coffee flutter luckin coffee application(仿瑞幸咖啡) 目录 前言 安卓扫码体验 flutter版本信息 安装 相关插件 维护者 ...
- 消息队列 折腾ActiveMQ时遇到的问题和解决方法
1.先讲严重的:服务挂掉. 这得从ActiveMQ的储存机制说起.在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的<systemUsage&g ...
- [BSidesCF 2020]Had a bad day 1--PHP伪协议
首先先打开主页,审查代码,并没有什么特别的地方使用dirsearch,发现flag.php https://code.visualstudio.com/download 友 ...
- 深入刨析tomcat 之---第13篇 tomcat的三种部署方法
writedby 张艳涛 一般我们都知道将web 应用打成war包,放到tomcat的webapp目录下,就是部署了,这是部署方法1 第2种部署方法我们也知道,就是讲web应用的文件夹拷贝到webap ...
- 关于maven打包与jdk版本的一些关系
最近让不同JAVA版本的容器maven打包折腾的不行,终于理出了一点头绪.在这里记录下备忘. 1. Maven与jdk版本的关系 先明确一个概念,关高版本JDK运行maven,是可以打出低版本的JAV ...
- Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)
Apache Tomcat 7.0.0~7.0.79 直接发送以下数据包即可在Web根目录写入shell: PUT /1.jsp/ HTTP/1.1 Host: 192.168.49.2:8080 A ...
- 通过cmake在Android中调用c语言,且三方应用通过so库调用c语言
1. 新建JniUtils类实现native方法 2. 在build中执行clean project 再rebuild project 生成class文件. 注意:最新版本的AndroidStud ...