原文: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. 我为什么要写FansUnion个人官网-BriefCMS-电子商务malling等系统

    不少朋友一直关注我最近几个月,已经做的和正在做的项目,比如个人官网.BriefCMS.电子上午malling等系统. 但是呢,部分朋友比较好奇,为啥要去写.他们比较疑惑的是,市面上已经有很多类似的系统 ...

  2. 关于hexo的SEO的好文章

    1.hexo高阶教程:想让你的博客被更多的人在搜索引擎中搜到吗? 2.Hexo Seo优化让你的博客在google搜索排名第一 3.hexo 博客 seo 优化 4.HEXO SEO 高级优化 5.H ...

  3. 弄App Store提示和技巧推荐

    众所周知上苹果的主页推荐是对产品最佳(高曝光率+零广告费)推广,然而苹果却对选择的方式和规则讳莫如深. 下面是搜集的一些获得推荐的开发人员的经验. 1. 产品要新颖.且质量上乘.这个质量包括非常多细节 ...

  4. Jsp bug_001

    报错: The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解 ...

  5. WindowsService - 开发遇到的问题

    1.Windows服务安装 通过cmd运行指令安装Windows服务: 安装方法:运行cmd,以InstallUtil.exe 来运行 Windows服务程序. 如果是Release模式的话,直接在c ...

  6. qmake生成vcproj & sln

    qmake生成的vs工程与环境变量中的 qmakespec相关,可以有两种方法: 1.默认情况下,即环境变量qmakespec为你装的qt for vs的版本,默认生成的为该版本的vs工程,如,你装的 ...

  7. onload 事件

    定义和用法 onload 事件会在页面或图像加载完成后立即发生. 语法 onload="SomeJavaScriptCode" 参数 描述 SomeJavaScriptCode 必 ...

  8. delphi 颜色,字体保存到INI文件

    颜色转换成整型保存{也可以用ColorToString  / stringTOColor}字体用下面的函数转换成字符串,然后保存 unit xFonts; interface uses Classes ...

  9. c语言学习笔记(4)——流程控制

    一.什么是流程控制 程序代码执行的顺序 流程控制分类 顺序执行 选择执行 定义 有选择的执行某些代码 分类 if switch 循环执行 定义 某些代码会被重复执行 分类 for while do w ...

  10. 实用WordPress后台MySQL操作命令

    关键字: WordPress MySQL 后台 数据库 地址:http://www.cnblogs.com/txw1958/archive/2013/01/06/wordpress-sql.html ...