前言

我的工作目前不涉及到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数据库的更多相关文章

  1. Android虚拟机中的sqlite数据库文件

    Android虚拟机中的sqlite数据库文件 ①

  2. 在项目中使用SQLite数据库小结

    ------------------------------------------------------------------------推荐: - VS2012 使用 1.0.84 版的库 - ...

  3. 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET

    今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...

  4. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  5. Go语言中使用SQLite数据库

    Go语言中使用SQLite数据库 1.驱动 Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接口的 https://github.com/mattn/go-sqlite3 ...

  6. 在Android 开发中使用 SQLite 数据库笔记

    SQLite 介绍   SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...

  7. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  8. C#中使用SQLite数据库简介(上)

    [SQLite数据库] SQLite是一个开源的轻量级的桌面型数据库,它将几乎所有数据库要素(包括定义.表.索引和数据本身)都保存在一个单一的文件中.SQLite用C编写实现,它在内存消耗.文件体积. ...

  9. 在安卓开发中使用SQLite数据库操作实例

    前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...

随机推荐

  1. 玩转Spring Cloud之服务注册发现(eureka)及负载均衡消费(ribbon、feign)

    如果说用Spring Boot+Spring MVC是开发单体应用(或单体服务)的利器,那么Spring Boot+Spring MVC+Spring Cloud将是开发分布式应用(快速构建微服务)的 ...

  2. Windows -- cmd命令: netstat 和 arp

    1. netstat: 显示网络连接.路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作. 命令格式及参数如下: 2. ARP: 可用于查询本机ARP缓存中IP地址和MAC地址的对应关系.添加 ...

  3. pytest进阶之conftest.py

    前言 前面几篇随笔基本上已经了解了pytest 命令使用,收集用例,finxture使用及作用范围,今天简单介绍一下conftest.py文件的作用和实际项目中如是使用此文件! 实例场景 首先们思考这 ...

  4. 开源的类似于Apache ab的压力测试命令行工具SuperBenchmarker

    SuperBenchmarker 是ㄧ个开源的类似于Apache ab的压力测试命令行工具.可以在 .NET 4.52+ 或者 .NET Core 2.0+ 平台上运行. 可支持Get.Post.Pu ...

  5. Linux 桌面玩家指南:16. 使用 CUDA 发挥显卡的计算性能

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  6. 不带parent指针的successor求解

    问题: 请设计一个算法,寻找二叉树中指定结点的下一个结点(即中序遍历的后继).给定树的根结点指针TreeNode* root和结点的值int p,请返回值为p的结点的后继结点的值.保证结点的值大于等于 ...

  7. sersync自动化同步部署

    目录 0. 前提: 1. 部署rsync server服务 1.1 配置rsync配置文件 1.2 rsync配置文件说明: 1.3 创建密码文件修改权限600 1.4 创建提示文件(可有可无) 1. ...

  8. 【Android Studio安装部署系列】二十八、Android Studio查看其它APP的布局结构

    概述 日常使用别家的APP过程中,会遇到一些比较好看的布局,这时候我们就想学习一下别人的布局结构,以便参考. (1)手机连接电脑.设置手机为USB调试模式 参考<[Android Studio安 ...

  9. 用python读文件如.c文件生成excel文件

    记录一下,如何实现的,代码如下: #!/usr/bin/env python # coding=utf-8 # 打开文件 import xlwt import re import sys bookfi ...

  10. [翻译] EF Core 概述

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...