Win10通用应用程序 UWP 使用 SQLite 【图文教程】

在win10 UWP开发中,我们可以使用SQLite。本篇文章说一下如何在UWP中使用SQLite。因为SQLite是跨平台的,版本众多,我刚开始用的时候不知道要装哪个,什么WP8的、WP8.1的、Win RT的……简直摸不着头脑。希望这篇文章能让大家少走点弯路。

一、添加SQLite扩展

首先要添加SQLite的库。主页是http://sqlite.org/,下载地址在:http://sqlite.org/download.html。这个页面有所有平台的下载地址,下载这个:


然后安装。

还有一种方式是直接在VS2015里的扩展和更新里安装,搜索sqlite:


安装扩展后,需要重新启动VS2015。

二、添加SQLite引用

还是新建一个MVVM-Sidekick项目,然后编译一下,让Nuget去自动添加所需引用。MVVM-Sidekick的使用详见我之前的几篇博客。


现在可以添加SQLite引用了。在项目上点右键,添加引用:


还需要安装一个sqlite-net-pcl,相当于一个ORM:


引用中有这两个就可以了:


三、添加实体类

在项目中添加一个Models文件夹,添加一个UserItem类:

 public class UserItem
{
/// <summary>
/// 自增主键
/// </summary>
[AutoIncrement, PrimaryKey]
public int Id { get; set; }
 
/// <summary>
/// 姓名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 年龄 不为空
/// </summary>
[NotNull]
public int Age { get; set; }
 
/// <summary>
/// 地址
/// </summary>
public string Address { get; set; }
 
/// <summary>
/// 忽略此值
/// </summary>
[Ignore]
public string SomeProperty { get; set; }
}

四、添加Command

先来简单操作一下SQLite感受一下。在MainPage页面添加两个按钮,一个是添加用户,一个是读取用户:


在App.xaml.cs里添加一个数据库名:


然后在MainPage_Model.cs文件里添加两个Command,可以用代码段propcmd来生成一段Command代码:

添加用户命名为CommandAddUser,

await MVVMSidekick.Utilities.TaskExHelper.Yield();
string path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, App.DbFileName);
using (var db = new SQLiteConnection(new SQLitePlatformWinRT(), path))
{
db.CreateTable<UserItem>();
UserItem item = new UserItem { Address = "北京", Age = 20, SomeProperty = "哈哈", UserName = "王小明" };
db.Insert(item);
}

获取用户列表命名为CommandGetUsers:

await MVVMSidekick.Utilities.TaskExHelper.Yield();
string path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, App.DbFileName);
StringBuilder sb = new StringBuilder();
using (var db = new SQLiteConnection(new SQLitePlatformWinRT(), path))
{
var list = db.Table<UserItem>();
foreach (var item in list)
{
sb.AppendLine($"{item.Id} {item.UserName} {item.Age} {item.Address}");
}
await new MessageDialog(sb.ToString()).ShowAsync();
}

然后把这两个Command绑定到页面的按钮上:


OK, 现在就可以运行一下看看了。


数据已经可以添加和读取了。

当然以上代码是非常ugly的,我们最好分一下层,把数据库交互的部分拿出来。在VM中不要出现直接访问数据库的代码。

五、重构

刚才我们使用SQLite是直接在Command里连接数据库然后访问插入或读取数据,这是非常丑陋的。最好把访问数据库的代码抽出来单独放一层。

在项目里新建一个Services文件夹,添加一个DbContext.cs文件。

这个类使用单例:


然后在app初始化的时候调用一下Init方法来初始化数据库。在哪里初始化呢,我们找到Startups目录下的StartupFunctions.cs文件,初始化代码可以写在RunAllConfig()方法里:


然后在Services目录里添加一个DataService.cs文件,在这里就可以把常用的增删查改都实现一下了,如:


这个Service怎么用呢,我习惯用MVVM-Sidekick提供的一个轻量级的ioc容器,还是在Startups目录下的StartupFunctions.cs文件的RunAllConfig()方法,添加这么一行:


再回到MainPage_Model.cs文件,修改vm里的Command,

插入用户就简洁多了:


获取所有用户:


这样在vm层的代码就少很多了,实现了复用。

六、其他

本来还想写写如何读取数据库,不过在h大神http://www.cnblogs.com/h82258652/p/4802076.html
这个文章里已经详细叙述了如何去找到这个数据库及如何读取数据库,这里就不再赘述了。此外他还提到了项目必须编译为x86或x64,不能为Any
CPU,也要注意下。

至于如何将数据取出来绑定到ListView上,应该就很简单了。

对了还有那个单例的基类,也附在这里:

补充一篇 win 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吧!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, sqlite
, 开发
, 文件
, 代码
using
uwp通用应用开发教程、uwp sqlite、uwp sqlite 事务、uwp通用应用、uwp开发教程,以便于您获取更多的相关知识。

时间: 2024-08-08 10:01:42

Win10通用应用程序 UWP 使用 SQLite 【图文教程】的相关文章

在Lua程序中使用SQLite的教程

  这篇文章主要介绍了在Lua程序中使用SQLite的教程,包括建立连接到基本的查询等一些操作,需要的朋友可以参考下 SQLite导入 我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成.在安装过程中,文件夹libsql包含数据库相关的文件. 代码如下: sqlite3 = require "luasql.sqlite3" 变量sqlite3将提供通过参照主sqlite3表访问该功能. 建立连接 我们成立了发起sqlite环境,然后创建环境的连接.它如下所示. 代码

Win10系统中如何打开Hyper-V的图文教程

Win10系统中内置了Hyper-V虚拟机,这个虚拟机可以在Win10中直接打开.只不过有些朋友不知道怎么打开Win10 Hyper-V,本文就来介绍一下在Win10系统中打开Hyper-V的方法.   具体方法如下:   1.将鼠标移至开始图标,单击右键(注意:是右键,不是左键):     2.点击"控制面板":     3.点击"程序":     4.点击"启用或关闭windows功能":     5.勾选"Hyper-V"

在Lua程序中使用SQLite的教程_Lua

 SQLite导入 我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成.在安装过程中,文件夹libsql包含数据库相关的文件.   复制代码 代码如下: sqlite3 = require "luasql.sqlite3" 变量sqlite3将提供通过参照主sqlite3表访问该功能.建立连接 我们成立了发起sqlite环境,然后创建环境的连接.它如下所示. 复制代码 代码如下: local env  = sqlite3.sqlite3() local conn =

Win10系统下IE11浏览器重置的图文教程

1.我们打开ie浏览器,然后点击"工具"菜单中的"Internet 选项"点击它打开进入; 2.在弹出的窗口中找到"高级"标签并点击"重置"按钮,然后我们点击它打开进入,细节如下; 3.在弹出的确认框中再次点击重置,系统会自动开始重置IE工作. 4.重置完成关闭重置进度窗口后,IE浏览器就重置完成了. 好了以上就是我们ie浏览器重置的全部过程了,其实这个非常的简单不管是ie多少版本操作步骤都是这样的哦.

Win10系统还原点一键创建的图文教程

1.我们进入到系统,然后在电脑的桌面单击右键,之后在弹出的菜单中我们 点击"新建→快捷方式"效果如下所示 2.然后在进入界面中我们需要执行代码,复制下面的代码(如上图): cmd.exe /k "Wmic.exe /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "%DATE%", 100, 7" 3.给该快捷方式命名(随意即可),如下图-- 4.好了这样在桌

Win10系统更改COM端口号的图文教程

1.我们在桌面吉击桌面的"此电脑"然后在进入后我们再找到"管理"---"设备管理器",找到串口设备效果如下图所示: 2.接着我们再找到打开窗口中的"属性",点击"高级": 3.根据自己的需求,设置设备需要的端口号. 好了这个com端口号只能选择不能用户自定义了,硬件固定的所以我们只要随便选择就好了.

Win10系统下设置环境变量的图文教程

1. 方法非常的简单我们右击"此电脑"右键选择"属性"选项,然后点击打开: 2. 之后在进入后我们找到系统下面的"高级系统设置"选项,打开进入效果如下: 3. 之后再进入之后找到"环境变量"了,如下: 4. 选择"新建": 5. 在此就可以设置环境路径了,具体如下. 好了设置好了我们点击保存即可,这个环境变量的配置与xp系统有比较大的区别.

大白菜u盘安装win10系统图文教程

  一.大白菜U盘安装Win10准备工作: 1.首先需要下载Windows 10操作系统,分为32位于64位两个版本,电脑内存大于4GB的用户,建议下载64位Win10系统. 2.准备一个U盘,容量至少为8GB以上,将U盘插入电脑中.注意,在下面的将iSO原版Win10镜像写入U盘,并制作U盘起到,会格式化U盘,因此如果U盘上有重要数据,请注意先备份到云盘或者其他电脑上. 3.在电脑中下载安装大白菜装机版,主要是制作U盘启动,以及将Win10预览版系统写入到U盘中. 4.打开下载并完成安装的大白

Win7/Win8.1升级Win10后屏幕一直闪烁的详细图文解决方法

  有些用户Win7/Win8.1升级到Win10正式版后,发现屏幕一直不停闪烁,以至于无法正常使用.出现这样的原因可能有很多,今天小编就为大家带来Win7/Win8.1升级Win10后屏幕一直闪烁的详细图文解决方法. 微软社区的论坛审阅人Alex_Shen给出了一种解决方案:进入安全模式停止两个服务. 具体操作如下: 1.进入设置→更新和安全→恢复 2.找到高级启动,点击"立即重启" 3.重启后,进入第一个选择画面,点击"疑难解答" 4.然后点击"高级选