UWP开发随笔——使用SQLite数据库

简介: 原文:UWP开发随笔——使用SQLite数据库摘要 大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用。
原文: UWP开发随笔——使用SQLite数据库

摘要

大多数的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(1, key);
    statement.Bind(2, value);
    statement.Step();
}

DELETE

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

UPDATE

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

QUERY

using (var statement = _connection.Prepare(SQL_QUERY_VALUE))
{
    statement.Bind(1, key);
    SQLiteResult result = statement.Step();
    if (SQLiteResult.ROW == result)
    {
        value = statement[0] 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吧!

 

目录
相关文章
|
7天前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
7天前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
|
28天前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
8天前
|
SQL 数据库 数据库管理
SQLite 创建数据库
SQLite 的 sqlite3 命令被用来创建新的 SQLite 数据库。您不需要任何特殊的权限即可创建一个数据。
13 0
|
10天前
|
JSON NoSQL 数据库
和SQLite数据库对应的NoSQL数据库:TinyDB的详细使用(python3经典编程案例)
该文章详细介绍了TinyDB这一轻量级NoSQL数据库的使用方法,包括如何在Python3环境中安装、创建数据库、插入数据、查询、更新以及删除记录等操作,并提供了多个编程案例。
24 0
|
2月前
|
Java Spring 开发者
Java Web开发新潮流:Vaadin与Spring Boot强强联手,打造高效便捷的应用体验!
【8月更文挑战第31天】《Vaadin与Spring Boot集成:最佳实践指南》介绍了如何结合Vaadin和Spring Boot的优势进行高效Java Web开发。文章首先概述了集成的基本步骤,包括引入依赖和配置自动功能,然后通过示例展示了如何创建和使用Vaadin组件。相较于传统框架,这种集成方式简化了配置、提升了开发效率并便于部署。尽管可能存在性能和学习曲线方面的挑战,但合理的框架组合能显著提升应用开发的质量和速度。
33 0
|
2月前
|
数据库 Java 数据库连接
玩转Play Framework的秘密武器:Ebean ORM带你解锁高效数据库操作新姿势,让你的代码从此飞起来!
【8月更文挑战第31天】Play Framework 以其简洁的 API 和高效开发体验著称,Ebean ORM 则是其推荐的对象关系映射(ORM)工具之一。Ebean 可将 Java 对象轻松映射到数据库表,简化数据库交互。本文将指导你在 Play Framework 中使用 Ebean ORM 进行数据库操作,涵盖项目创建、依赖引入、数据库配置、模型定义及 CRUD 操作,并通过示例代码展示实现过程。通过这些步骤,你将学会如何利用 Ebean 的丰富功能,如事务管理、查询构建等,提升 Web 应用的数据库交互能力。
29 0
|
2月前
|
数据库 测试技术 开发者
Play Framework的测试魔法:让代码在舞台上翩翩起舞,确保应用质量的幕后英雄!
【8月更文挑战第31天】Play Framework不仅以其高效开发与部署流程著称,还内置了强大的测试工具,提供全面的测试支持,确保应用高质量和稳定性。本文将详细介绍如何在Play Framework中进行单元测试和集成测试,涵盖`WithApplication`、`WithServer`及`WithDatabase`等类的使用方法,并通过示例代码手把手教你如何利用Play的测试框架。无论是单元测试、集成测试还是数据库操作测试,Play Framework均能轻松应对,助你提升应用质量和开发效率。
29 0
|
2月前
|
SQL 关系型数据库 数据库连接
Entity Framework Core 入门教程来袭!快速上手强大的 ORM 工具,开启高效数据库开发之旅!
【8月更文挑战第31天】Entity Framework Core(EF Core)是一个轻量且可扩展的对象关系映射(ORM)框架,允许开发者使用 .NET 语言操作数据库而无需直接编写 SQL 语句。本教程涵盖 EF Core 的安装、数据库上下文创建、数据库连接配置及常见数据库操作(如添加、查询、更新和删除),并介绍如何利用数据库迁移功能安全地更改数据库结构。通过本教程,你可以快速掌握 EF Core 的基本用法,提高开发效率。
38 0
|
18天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
下一篇
无影云桌面