原文:UWP开发-在UWP中使用sqlite

sqlite是一种轻量级的数据库,对于一些资源紧张又需要数据库的开发非常好用。

SQLite 是一个开源的无服务器嵌入式数据库。 这些年来,它已作为面向存储在许多平台和设备上的数据的主要设备端技术出现。 通用 Windows 平台 (UWP) 支持并建议使用 SQLite 实现跨所有 Windows 10 设备系列的本地存储。

SQLite 最适用于手机应用、面向 Windows 10 IoT 核心版(IoT 核心版)的嵌入式应用程序,以及作为企业关系数据库服务器 (RDBS) 数据的缓存。 它将满足大多数本地数据访问需求,除非这些数据需要大量的并发写入,或除了与大多数应用不同的大数据规模方案。

在媒体播放和游戏应用程序中,SQLite 还可用作文件格式来存储目录或其他资源(例如游戏级别),可以从 Web 服务器按原样下载该文件格式。

这里是微软的官方文档:https://msdn.microsoft.com/zh-cn/windows/uwp/data-access/sqlite-databases

1.首先,下载和安装sqlite,这里是下载地址:http://sqlite.org/download.html

对于UWP开发,应该下载Universal Windows Platform版本,就是这个:

下载完成后,安装即可。

2.接着添加对sqlite的引用:

在解决方案中,右击引用-》添加引用-》引用管理器中,打开Universal Windows标签页-》选中SQLite for Universal Windows Platform,确定。

如果这里没有SQLite for Universal Windows Platform,可能版本不对,也可能你没有正确执行第一步。

3.如果你想使用C#开发,当然还要添加SQLitePCL引用。右击引用-》管理Nuget程序包-》在“浏览”标签页下搜索SQLite.Net-PCL,安装SQLitePCL。

安装完成后,你的引用下面应该是类似这样的,注意,一定有红线画的两个引用。

4.现在,你可以开发了。

新建一个类,就Book.cs吧,我这里只是个示例,因为后面用到一下

    public class Book
{
[PrimaryKey,AutoIncrement]
public int Id { get; set; } [MaxLength()]
public string Name { get; set; } public string Description { get; set; }
}

注意添加using SQLite.Net.Attributes;引用

上面的[PrimaryKey,AutoIncrement]是对Id的约束属性,表示Id是主键且自增;[MaxLength(64)]则是表明Name最大长度为64。不懂的谷歌一下,属于SQL的基础内容。

对数据库操作不外乎增删改查,这里提供一个工具类供参考。

using SQLite.Net;
using SQLite.Net.Platform.WinRT;
using SqliteSample.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Storage; namespace SqliteSample
{
public class Dal
{
private static string dbPath = string.Empty;
private static string DbPath
{
get
{
if (string.IsNullOrEmpty(dbPath))
{
dbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "Sqlite.db");
} return dbPath;
}
} private static SQLiteConnection DbConnection
{
get
{
return new SQLiteConnection(new SQLitePlatformWinRT(), DbPath);
}
} public static void CreateDatabase()
{
// 创建连接
using (var db = DbConnection)
{
//创建Book表
var c = db.CreateTable<Book>(); //插入示例数据
Book book = new Book();
book.Id = ;
book.Name = "C# in depth";
book.Description = "good book";
db.InsertOrReplace(book);
}
} /// <summary>
/// 删除记录
/// </summary>
/// <param name="book">实体</param>
public static void DeleteBook(Book book)
{
using (var db = new SQLiteConnection(new SQLitePlatformWinRT(), DbPath))
{
db.Execute("DELETE FROM Person WHERE Id = ?", book.Id);
}
} /// <summary>
/// 获取全部的记录
/// </summary>
/// <returns>全部实体集合</returns>
public static List<Book> GetAllPersons()
{
List<Book> models; using (var db = new SQLiteConnection(new SQLitePlatformWinRT(), DbPath))
{
models = (from p in db.Table<Book>()
select p).ToList();
} return models;
} /// <summary>
/// 获取记录
/// </summary>
/// <param name="Id">实体Id</param>
/// <returns>实体</returns>
public static Book GetBookById(int Id)
{
using (var db = new SQLiteConnection(new SQLitePlatformWinRT(), DbPath))
{
Book m = (from p in db.Table<Book>()
where p.Id == Id
select p).FirstOrDefault();
return m;
}
} /// <summary>
/// 创建或更新一条记录
/// </summary>
/// <param name="book">实体</param>
public static void SaveBook(Book book)
{
using (var db = new SQLiteConnection(new SQLitePlatformWinRT(), DbPath))
{
if (book.Id == )
{
// 新建
db.Insert(book);
}
else
{
// 更新
db.Update(book);
}
}
}
}
}

Model就是上面的Book.cs

5.结语

sqlite还是挺好用的,除了微软提供的ApplicationData储存用户数据之外,sqlite可以储存图片什么的,不像自带的应用存储对类型有限制。

可以交月报了吗?2333考试啊,一看都31号了,都忘交了好几次月报了,再不交就对不起组织了2333,本来还有几篇,没想到好浪费时间啊,滚去复习啊

UWP开发-在UWP中使用sqlite的更多相关文章

  1. 【UWP开发】uwp应用安装失败

    原文:[UWP开发]uwp应用安装失败 编译出了uwp应用.appx之后双击打开,报错你需要为此应用包而安装的新证书,或者是带有受信任证书的新应用包.系统管理员或应用开发人员可以提供帮助.证书链在不受 ...

  2. Win10 UWP 开发系列:支持异步的SQLite

    上篇文章已经实现了在UWP中使用SQLite作为本地存储,作为移动端的程序,及时响应用户的操作是提高用户体验的重要途径,因此UWP的很多api都是异步的.那么如何使SQLite支持异步呢? 参考SQL ...

  3. (UWP开发)在ListView中通过向右滑动展开汉堡菜单

    首先在移动APP开发中,手势滑动已经成为一个必备的技能,无论大大小小的APP都需要拥有手势滑动功能.在Android和iOS操作系统的APP中,手势滑动比较普及.然而由于国内有关UWP应用的教程比较少 ...

  4. [UWP开发]在windows10中设置壁纸~UserProfilePersonalizationSettings

    在之前的wp8.1和wp8中,微软没有公开设置壁纸的API,只有一个设置锁屏的API,但在Windows10中,微软为我们提供了设置壁纸的API:TrySetWallpaperImageAsync,他 ...

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

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

  6. Win10 UWP 开发系列:使用SQLite

    在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中.但如果数据多的话,还是需要本地数据库的支持.在UWP开发中 ...

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

    摘要 大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用.但是在有些场景下,app的 ...

  8. Viewbox在UWP开发中的应用

    Windows 8.1 与Windows Phone 8.1的UAP应用,终于在Windows 10上统一到了UWP之下.原来3个不同的project也变为一个.没有了2套xaml页面,我们需要用同一 ...

  9. UWP开发中的方向传感器

    在UWP开发中,我们能使用的到方向有三种: OrientationSensor下的四元数:Compass罗盘的HeadingMagneticNorth:以及SimpleOrientationSenso ...

随机推荐

  1. 小强的HTML5移动开发之路(40)——jqMobi中实践header定义的几种方式

    一.定义全局的header 这个header是所有panel默认的header,需要在<div id="afui">内部,也就是和<div id="co ...

  2. matlab 运行 AlexNet

    0. alexnet 工具箱下载 下载地址:Neural Network Toolbox(TM) Model for AlexNet Network 需要先注册(十分简单),登陆,下载: 下载完成之后 ...

  3. [Android]TextView实现分散对齐(两端对齐)

    TextView是个特别基础的Android控件,只要有文本基本就少不了它.但是最近在项目开发的过程中我发现TextView存在很多局限性,其中最令我头疼的就是TextView文本排版方面的问题.我们 ...

  4. VS2017十五项新功能体验

    Visual Studio 2017十五项新功能体验 Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP ...

  5. Java中文件的上传与下载

    文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar  commons-io.jar apache的commons-fileupload实现文件上传,下载 [u ...

  6. 使用CMD实现批量重命名[转]

    关键字:cmd DOS 批处理 批量 重命名 作者:lifesinger地址:http://www.cnblogs.com/txw1958/archive/2012/12/24/cmd-batch-r ...

  7. uow Unit of work

    通过学习圣杰的文章  UnitOfWork知多少  知道uow其实就是为了解决 一次提交所有更改 1.ef本身可以具备这样一个功能,但是我们在写仓储的实现的时候 经常会直接显式saveChanges了 ...

  8. Atitit.Gui控制and面板----db数据库领域----- .比较数据库同步工具 vOa

    Atitit.Gui控制and面板----db数据库区----- .数据库比較同步工具 vOa 1. 咨微海信数据库应用 工具 1 2. 数据库比較工具 StarInix SQL Compare    ...

  9. Mac版Visual Studio预览版

    来了,Mac版Visual Studio预览版开放下载 投递人 itwriter 发布于 2016-11-17 12:11 评论(7) 有1317人阅读 原文链接 [收藏] « » 微软前俩天宣布,推 ...

  10. ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 异常和错误处理 上一章节中,我们学习了 ASP.NET Cor ...