摘要

大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用。但是在有些场景下,app的数据存储需要有database的支持,而sqlite,由于它轻量、高效、跨平台的特性,已经成为移动客户端开发中不可或缺的一部分。今天,小编就简单介绍一下如何在uwp开发中使用sqlite数据库。

环境配置

1.下载和安装SQLite

要使用sqlite,首先是要从sqlite.org下载SQLite啦,附上下载页的链接http://sqlite.org/download.html,然后选择UAP的版本:

下载下来的是一个VSIX的安装包,安装后重启VS,选择Tools -> Extensions and Updates… -> Installed -> SDKs中,会看到SQLite for Universal App Platform,说明SQLite已经安装完成!!

2.在工程中添加对SQLite的引用

现在,在我们的VS中,已经有了SQLite的集成,在相应工程目录下添加对SQLite的引用即可,右键点击References –> Add Reference,选择对SQLite的添加。

3.添加.Net支持

如果要使用C#的开发,还需要对工程本身进行进一步的配置,这就需要NuGet的帮助了。

右键点击工程名,选择Manage NuGet Packages…,然后搜索SQLitePCL,Install即可。

安装完成后,在Project的References里,便会多出一个SQLitePCL的引用。

图中红色方块里圈出的部分,其中上面的是对SQLite的引用,下面的是对SQLitePCL的引用。

在此完成之后,就可以使用SQLite开发了!!当然,在相应的文件中,不要忘了添加using SQLitePCL哦!!

定义SQL语句常量

在实际开发中,通常是把SQL语句统一起来进行管理,有的开发者在使用db过程中也喜欢使用一些Contract来使编码更加规范,为了更加清晰明了,这里只提供一些最基本的SQL语句供大家参考。

        private static String DB_NAME = "SQLiteSample.db";
private static String TABLE_NAME = "SampleTable";
private static String SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (Key TEXT,Value TEXT);";
private static String SQL_QUERY_VALUE = "SELECT Value FROM " + TABLE_NAME + " WHERE Key = (?);";
private static String SQL_INSERT = "INSERT INTO " + TABLE_NAME + " VALUES(?,?);";
private static String SQL_UPDATE = "UPDATE " + TABLE_NAME + " SET Value = ? WHERE Key = ?";
private static String SQL_DELETE = "DELETE FROM " + TABLE_NAME + " WHERE Key = ?"

建立第一张表

当你定义好一些SQL命令之后,就可以对数据库进行一系列的操作,最基本的当然是create table啦,以下给出实例代码:

_connection = new SQLiteConnection(DB_NAME);
using (var statement = _connection.Prepare(SQL_CREATE_TABLE))
{
statement.Step();
}

由于执行SQL语句的代码大致一样,所以不过多赘述,给出样例代码,其中key和value都是String变量。

INSERT

using (var statement = _connection.Prepare(SQL_INSERT))
{
statement.Bind(, key);
statement.Bind(, value);
statement.Step();
}

DELETE

using (var statement = _connection.Prepare(SQL_DELETE))
{
statement.Bind(, key);
statement.Step();
}

UPDATE

using(var statement = _connection.Prepare(SQL_UPDATE))
{
statement.Bind(, value);
statement.Bind(, key);
statement.Step();
}

QUERY

using (var statement = _connection.Prepare(SQL_QUERY_VALUE))
{
statement.Bind(, key);
SQLiteResult result = statement.Step();
if (SQLiteResult.ROW == result)
{
value = statement[] as String;
}
}

值得说明的是,在statement执行Step()的过程中,会返回一个SQLiteResult的返回值,在遍历返回结果的过程中,判断result是不是SQLiteResult.ROW就可以,关于SQLiteResult的具体内容,请参考SQLite.org的文档说明。

其它

说了半天使用SQLite开发,那么我们创建出来的数据库究竟在存放在哪里呢?系统默认是放在这个路径的:C:\Users\(username)\AppData\Local\Packages\(packagename)\LocalState,其中username当然就不用小编解释了,当然就是您的用户名喽!packagename可以在工程目录里面的Package.appxmanifest文件里查看,如图:

在这个路径下,我们能找到以我们的DB_NAME命名的文件,如SQLiteSample.db。

那么,我们怎么才能查看这种数据库呢,这里有许多第三方工具可以使用,小编比较推荐SQLite Expert,界面简单友好,使用方便,并且有personal的版本,完全免费哦。

结语

在uwp开发中,使用SQLite是一件很简单的事情,配合windows强大的存储功能和简洁的开发接口,让我们一起来开发美妙的uwp application吧!

UWP开发随笔——使用SQLite数据库的更多相关文章

  1. android开发之使用SQLite数据库存储

    http://blog.csdn.net/jason0539/article/details/16360835 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且 ...

  2. 在Android 开发中使用 SQLite 数据库笔记

    SQLite 介绍   SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...

  3. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

  4. Android 开发中使用 SQLite 数据库

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  5. python web开发-flask连接sqlite数据库

    在之前的文章中我们介绍了如何在centOS中安装sqlite数据库. Sqlite安装完成后,本节就用flask来连接和操作sqlite数据库. 1.       数据准备 先在sqlite3中创建一 ...

  6. [UWP小白日记-2]SQLite数据库DOME

    数据库说简单点就是增删改查,但是对新手来说也是要爆肝的.作为一个新手爆肝无数次啊, 血的教训啊现在UWP的教程又少,说多了都是泪.留下来免得以后又爆肝.还有:一定要写注释!一定要写注释!一定要写注释! ...

  7. UWP开发随笔——UWP新控件!AutoSuggestBox!

    摘要 要开发一款优秀的application,控件肯定是必不可少的,uwp就为开发者提供了各种各样的系统控件,AutoSuggestBox就是uwp极具特色的控件之一,也是相对于之前win8.1的ua ...

  8. android开发之使用SQLite数据库(db文件)

    在开发中,有时须要使用db文件数据库.所以就须要将其导入项目,再将其使用程序写入到应用的db文件下使用. 代码非常easy.能够拿来直接使用. 要使用须要两个步骤: 1.创建raw文件.导入db文件. ...

  9. 【Win 10 应用开发】Sqlite 数据库的简单用法

    如果老周没记错的话,园子里曾经有朋友写过如何在 UWP 项目中使用 Sqlite数据库的文章.目前我们都是使用第三方封装的库,将来,SDK会加入对 Sqlite 的支持. 尽管目前 UWP-RT 库中 ...

随机推荐

  1. net软件自动生成开发编程框架编程机器人

    有一个.net自动生成平台(编程机器人)推荐给大家,常规几天十几天的工作,机器人几分钟搞定,不写一行代码,留下大把休闲时光,适应于聪明人:不想太累的程序员(看看风景泡泡妞),不想多请人的老板(有限资金 ...

  2. 在 Boolan 网开讲《网络编程实战》课程

    <网络编程实战>是一门以讲解实例为主的课程,每一节都讲一两个网络编程的例子程序,课程偏重 Linux 服务端 TCP 网络编程. 本课程要求听课人员已经读过<Unix 网络编程> ...

  3. 需要了解的 Linux 网络和监控命令

    列出来的10个基础的每个linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup ...

  4. 数据库(SQL SERVER)常用知识点

    1,连接数据库字符串 Data Source=192.168.1.249;Initial Catalog=bbx_uf_jiekou;User ID=sa;Password=123 Data Sour ...

  5. Oracle表空间数据文件移动的方法

    最近遇到这样的一个问题,Oracle存放表空间文件的盘符 空间不够了,必须把部分表空间迁移出去, [转]http://www.jb51.net/article/77026.htm 实现把用户表空间中的 ...

  6. BZOJ 1026: [SCOI2009]windy数

    题目 人生中的第一道数位dp,很有趣,虽然我很快推出了结构,但是过程却迟迟没有写出来,最后看别人的题解才恍然大悟 d[i][j]表示数位为i,最高位为j的方案数 DpInit非常简单,复杂度应该是O( ...

  7. command not found,系统很多命令都用不了 ,修改环境变量

    bash: ***: command not found,系统很多命令都用不了,均提示没有此命令. 突然之间linux很多命令都用不了,均提示没有此命令. 这应该是系统环境变量出现了问题导致的. 解决 ...

  8. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...

  9. asp.net core 使用protobuf

    在一些性能要求很高的应用中,使用protocol buffer序列化,优于Json.而且protocol buffer向后兼容的能力比较好. 由于Asp.net core 采用了全新的MiddleWa ...

  10. [UE4]逻辑状态机组件

    逻辑状态机 为了实现对目标状态的控制,以及广播改变状态后的事件,可在蓝图中继续处理不同状态下的行为. 实现过程: 1.继承ActorComponent实现LogicStateMachine: 2.被击 ...