在Windows Phone 8.1中使用Sqlite数据库
前言
我的工作目前不涉及到Windows phone的开发,但是业余时间也开发过几款app。以前由于各种条件的限制,只接触到WP8.0设备的app开发。
最近几个月开始将WP8的应用迁移到WP8.1,发现很多API都变了。
最令我印象深刻也最意外的一点是:【找不到MessageBox】了。
卧槽,找不到MessageBox...(此处省略100字)
回归正题,在WP8阶段,微软为本地数据库的操作提供了一系列API,需要的朋友可以通过:http://msdn.microsoft.com/zh-cn/library/hh202860查看。
不过在WP8.1(XAML)中这些API已经无法使用了,通过搜索一些资料,最终把以前的一些本地数据库操作API替换成Sqlite的版本。
步骤
1.建立一个WP8.1的项目。
2.画一个简单的UI,如图:

app具有一个简单的功能:将“姓名”和“年龄”数据保存到数据库表中。
app的下半部分是一个列表(现在没有任何数据所以看不出来),用于显示当前数据表中的所有信息。
3.建立模型
public class Person
{
public int ID
{
get;
set;
} public string Name
{
get;
set;
} public int Age
{
get;
set;
}
}
4.依次选择VS菜单栏:【工具】--》【扩展和更新】-->【联机搜索Sqllite】,如图:

下载Sqlite for windows phone8.1,我这里已经下载好了。
5.下载安装完毕之后需要重启VS。
6.添加对Sqlite的引用,如图:

7.接下来编译会发生一个错误,需要将编译架构调整为“ARM”或者“X86”.
8.添加的sqlite引用是C++开发的,在项目中没有办法直接使用。我们还需要在项目中添加一些别人封装好的类。
9.打开Nuget管理器,搜索“Sqlite”,安装“Sqlite-net”,如图:

10.安装完毕后会发现项目中多了两个类,我们操作Sqlite数据库主要也就是使用这两个类中的方法和属性。如图:

11.接下来可以做点真正有意义的事情了。首先得我们需要告诉Sqlite哪个属性是主键吧?
我们把“ID”作为主键。
public class Person
{
[PrimaryKey]
[AutoIncrement]
public int ID
{
get;
set;
} public string Name
{
get;
set;
} public int Age
{
get;
set;
}
}
特性"PrimaryKey"表明特性对应的属性作为表的主键。“AutoIncrement”表明这是一个自增列。
12.创建Person表。
/// <summary>
/// 创建Person表
/// </summary>
/// <returns></returns>
private async Task<SQLiteAsyncConnection> CreatePersonTableAsync()
{
var conn = new SQLiteAsyncConnection(localDBPath);
await conn.CreateTableAsync<Person>(); return conn;
}
localDBPath是数据库文件的路径。
我们可以通过返回的“SQLiteAsyncConnection”对象,对Person表进行增删查改的操作。
13.目前为止,准备工作都做好了。可以书写按钮点击事件的逻辑了。
private async void AddData_Tapped(object sender, TappedRoutedEventArgs e)
{
//构造Person对象
Person person = new Person();
person.Name = textboxName.Text;
person.Age = int.Parse(textboxAge.Text); //插入到数据库
var conn = await CreatePersonTableAsync();
await conn.InsertAsync(person);
}
需要注意的是CreateTableAsync方法并不会覆盖掉已有的Table。
备注
这篇文章主要帮助一些不知道如何在WP8.1中使用Sqlite的朋友快速上手。
文章中贴出的代码并没有对一些异常做处理,实际项目中这是不可能的。主要是方便大家看到最精要的部分。
其他数据库的操作方法我就不一一列举了,查看“SQLiteAsync”类的代码,5分钟就可以知道可以通过SQLiteAsync做哪些事情。
友情链接:zhoumy博客
在Windows Phone 8.1中使用Sqlite数据库的更多相关文章
- Android虚拟机中的sqlite数据库文件
Android虚拟机中的sqlite数据库文件 ①
- 在项目中使用SQLite数据库小结
------------------------------------------------------------------------推荐: - VS2012 使用 1.0.84 版的库 - ...
- 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET
今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...
- android中与SQLite数据库相关的类
为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...
- Go语言中使用SQLite数据库
Go语言中使用SQLite数据库 1.驱动 Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的 https://github.com/mattn/go-sqlite3 ...
- 在Android 开发中使用 SQLite 数据库笔记
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...
- 在 Android 应用程序中使用 SQLite 数据库以及怎么用
part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...
- C#中使用SQLite数据库简介(上)
[SQLite数据库] SQLite是一个开源的轻量级的桌面型数据库,它将几乎所有数据库要素(包括定义.表.索引和数据本身)都保存在一个单一的文件中.SQLite用C编写实现,它在内存消耗.文件体积. ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
随机推荐
- 【纯技术贴】.NETStandard FreeSql v0.0.9 功能预览
年关将至,首页技术含量文章真是越来越少,理解大家盼着放假过年,哥们我何尝不是,先给大家拜个早年. 兄弟我从11月底发了神经,开启了 ORM 功能库的开发之旅,历时两个月编码和文档整理,目前预览版本更新 ...
- windows代码,路径分割
BOOL SplitPathName( PWSTR MyXbpathBuffer, wstring& wdrive, wstring& wdir, wstring& wfnam ...
- SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图
摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障 ...
- Visual Studio动态生成版权信息
Visual Studio动态生成版权信息 VS2008 1.1,类文件模板:在安装目录打开CS模板文件夹(D:\Program Files (x86)\Microsoft Visual Studio ...
- Cookie、LocalStorage 与 SessionStorage的区别在哪里?
基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通 ...
- 18 章 CSS 链接、光标、 DHTML 、缩放
1.CSS 中链接的使用 2.CSS 中光标的使用 3.CSS 中 DHTML 的使用 4.CSS 中缩放的使用 1 18 8. .1 1 S CSS 中 链接的使用 超链接伪类属性 a:link ...
- 读懂 Gradle 的 DSL
现在 Android 开发免不了要和 Gradle 打交道,所有的 Android 开发肯定都知道这么在 build.gradle 中添加依赖,或者添加配置批量打包,但是真正理解这些脚本的人恐怕很少. ...
- 一份非常完整的MySQL规范
一.数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名 ...
- Python后台开发Django(启动)
Django版本为:2.1.7 Python的web框架,MTV思想 MVC Model(模板文件,数据库操作) view(视图模板文件 )controller(业务处理) MTV Model(模 ...
- Nodejs+Express 搭建 web应用
简单的记录下关于如何使用nodejs+Express 极速搭建一个web应用. 项目所需,要用到nodejs,那就去学咯.简单的看了下 七天学会NodeJS,Node.js 教程.发现其实好简单的,分 ...