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的更多相关文章
- 【UWP开发】uwp应用安装失败
原文:[UWP开发]uwp应用安装失败 编译出了uwp应用.appx之后双击打开,报错你需要为此应用包而安装的新证书,或者是带有受信任证书的新应用包.系统管理员或应用开发人员可以提供帮助.证书链在不受 ...
- Win10 UWP 开发系列:支持异步的SQLite
上篇文章已经实现了在UWP中使用SQLite作为本地存储,作为移动端的程序,及时响应用户的操作是提高用户体验的重要途径,因此UWP的很多api都是异步的.那么如何使SQLite支持异步呢? 参考SQL ...
- (UWP开发)在ListView中通过向右滑动展开汉堡菜单
首先在移动APP开发中,手势滑动已经成为一个必备的技能,无论大大小小的APP都需要拥有手势滑动功能.在Android和iOS操作系统的APP中,手势滑动比较普及.然而由于国内有关UWP应用的教程比较少 ...
- [UWP开发]在windows10中设置壁纸~UserProfilePersonalizationSettings
在之前的wp8.1和wp8中,微软没有公开设置壁纸的API,只有一个设置锁屏的API,但在Windows10中,微软为我们提供了设置壁纸的API:TrySetWallpaperImageAsync,他 ...
- UWP开发随笔——UWP新控件!AutoSuggestBox!
摘要 要开发一款优秀的application,控件肯定是必不可少的,uwp就为开发者提供了各种各样的系统控件,AutoSuggestBox就是uwp极具特色的控件之一,也是相对于之前win8.1的ua ...
- Win10 UWP 开发系列:使用SQLite
在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中.但如果数据多的话,还是需要本地数据库的支持.在UWP开发中 ...
- UWP开发随笔——使用SQLite数据库
摘要 大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用.但是在有些场景下,app的 ...
- Viewbox在UWP开发中的应用
Windows 8.1 与Windows Phone 8.1的UAP应用,终于在Windows 10上统一到了UWP之下.原来3个不同的project也变为一个.没有了2套xaml页面,我们需要用同一 ...
- UWP开发中的方向传感器
在UWP开发中,我们能使用的到方向有三种: OrientationSensor下的四元数:Compass罗盘的HeadingMagneticNorth:以及SimpleOrientationSenso ...
随机推荐
- [Django] Start a new django project
Assume we already have a env created call 'demo-env': cd demo-env . bin/activate pip install django ...
- Erlang中频繁发送远程消息要注意的问题
http://avindev.iteye.com/blog/76373 注:这篇文章可能会有争议,欢迎提出意见 在Erlang中,如果要实现两个远程节点之间的通信,就需要通过网络来实现,对于消息发送, ...
- 实践-Task
实践-Task 上篇博文中,我们介绍了Thread和ThreadPool: 多线程异步编程示例和实践-Thread和ThreadPool 本文中我们继续,说一下TPL(Task Parallel Li ...
- eclipse上springCloud分布式微服务搭建-干货
一.创建maven父工程(pom) pom.xml如下: eureka: client: registerWithEureka:false fetchRegistry:false serviceUrl ...
- 衡量镜头解像能力性能的指标-MTF曲线
MTF(Modulation Transfer Function,模量传递函数),是目前分析镜头解像能力的方法,可以用来评判镜头还原物体对比度的能力.说到MTF,不得不先提一下衡量镜头性能的两在重要指 ...
- 【struts2+hibernate4】小型电子商务站点
这里使用的是struts2和hibernate4两个框架开发的一个小型电子商务站点,数据库方面我也会给出对应的代码. 总之使用的是:struts2+hibernate4+jsp+MySQL+tomca ...
- Ueditor 在.net core 中的使用
参考模仿了 https://blog.csdn.net/qq_34220236/article/details/80581811 这篇文章 要注意的是,去ueditor官网下的包,大多不可用. 要自己 ...
- 在.net core自带DI中服务生命周期 Transient,Scoped,Singleton
只要是透过WebHost产生实例的类型,都可以在构造方法注入.所以Controller.View.Filter.Middleware或自定义的Service等都可以被注入. Transient是瞬时的 ...
- WPF制作的党旗
原文:WPF制作的党旗 --------------------------------------------------------------------------------引用或转载时请保 ...
- requireJS简单的学习门户网站
总结 requireJS.这翻译成中国"必须js".说白了就是装js文件与.如何装好了?.这是继AMD标准化的模块化装.除了AMD另一种规范称为CMD规范.跟随CMD兼容模块加载. ...