SQLite是一个轻量级的关系型数据库,正是由于其精悍小巧,在移动端平台被广泛应用,但不适合处理大量数据和批量操作。它的底层是由C语言编写,最初设计是为了应用于嵌入式,占用资源非常低且简单易用,而且绝大部分程序语言都可以很好的与之结合。在.net中它的sdk中支持linq实现方式,使用更加方便。

sdk安装。

安装好了之后,我们引用dll。

这时候出现这样的错误,这是由于sdk只支持arm和32位的编译环境。

可以将通过项目属性将平台目标选为32位。

这里要说明一下,sqlite for wp8.1 sdk适用于32位和winrt,调试的时候可以选为32位,编译发布的时候,wp只能识别这个arm平台的环境。否则会报出 Error - Deployment optimization failed due to an assembly that's not valid. Try rebuilding the project, and then try again.

接下来还需要安装sqlite-net,可以这行package console的shell命令。

这时候我们的项目中会出现两个cs文件。

接下来我们来验证一下sdk,首先创建一个表对象。

 using System;
using SQLite; namespace FY.Weather.DataModel
{
[Table("Temp")]
public class Temp
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; } public string JsonData { get; set; } public DateTime CreationDate { get; set; }
}
}

调用sdk创建表。

 private async void CreateTemp()
{
string dbName = ViewModelLocator.Instance.DBName;
if (!await Common.CheckFileAsync(dbName))
{
SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(dbName);
await conn.CreateTableAsync<Temp>();
}
}

获取表数据。

 private async System.Threading.Tasks.Task<Temp> GetTemp(int id)
{
SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(ViewModelLocator.Instance.DBName);
var query = await conn.QueryAsync<Temp>("select * from temp where id=?", new object[] { id });
if (query != null && query.Count > )
{
return query[];
}
return null;
}

添加修改数据。

 private async void AddOrEditTemp(Temp temp)
{
SQLite.SQLiteAsyncConnection conn = new SQLite.SQLiteAsyncConnection(ViewModelLocator.Instance.DBName);
var query = await conn.QueryAsync<Temp>("select * from temp where id=?", new object[] { temp.Id });
if (query != null && query.Count > )
{
await conn.UpdateAsync(temp);
}
else
{
await conn.InsertAsync(temp);
}
}

验证数据库文件是否存在。

 public static async System.Threading.Tasks.Task<bool> CheckFileAsync(string fileName)
{
bool fileIsExist = true;
try
{
Windows.Storage.StorageFile sf = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
}
catch
{
fileIsExist = false;
}
return fileIsExist;
}

wp8.1 SQLite的基本使用的更多相关文章

  1. wp8.1 sqlite Error - Deployment optimization failed due to an assembly that's not valid.

    这里我们使用的sqlite的版本为3.8.5,vs2013在发布的时候出现 Error - Deployment optimization failed due to an assembly that ...

  2. 轻量级本地数据库SQLite在WinRT的使用

    开发环境:Windows 8.1 开发工具:Visual Studio Express 2013 for Windows SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开 ...

  3. (wp8.1开发)添加数据(SQLite)库到app

    wp8.1只支持SQLite. 如何添加SQLite支持请看这里 我这里要说的是如何添加自己的数据库 1.添加数据库到项目中 2.右击选择属性 3.将生成操作改成内容 4.直接就可以引用数据库文件了

  4. wp8使用现有sqlite数据库

    就是把现有文件转移到隔离空间即可 代码如下 private async void CopyDB()        {            StorageFile fage = await Appli ...

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

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

  6. Windows Phone8 中如何引用 SQLite 数据库

    SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开发,使用非常广泛 2.SQLite是一款跨平台的数据库,支持Windows.Linux.Android.IOS.Windo ...

  7. Windows Phone8 中如何引用 SQLite 数据库2

    本博文编写环境 VS2013 + WP8 SDK 上篇介绍完了SQLite在wp中的部署(具体请参阅 Windows Phone8 中如何引用 SQLite 数据库),下面来看如何使用 SQLite ...

  8. windows phone 8.1开发SQlite数据库操作详解

    原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...

  9. 在Windows Phone 8.1中使用Sqlite数据库

    前言 我的工作目前不涉及到Windows phone的开发,但是业余时间也开发过几款app.以前由于各种条件的限制,只接触到WP8.0设备的app开发. 最近几个月开始将WP8的应用迁移到WP8.1, ...

随机推荐

  1. 6.1课堂笔记—DML(数据操作语言),DQL查询语句

    一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%st ...

  2. 浅谈Storm流式处理框架

    Hadoop的高吞吐,海量数据处理的能力使得人们可以方便地处理海量数据.但是,Hadoop的缺点也和它的优点同样鲜明——延迟大,响应缓慢,运维复杂. 有需求也就有创造,在Hadoop基本奠定了大数据霸 ...

  3. Apache Kylin本地启动

    首先:kylin是一种Online Analytics Platform.    kylin 在Apache的首页是http://kylin.apache.org/cn/.    kylin git代 ...

  4. uva-10815-字符串排序

    又偷懒了,字符串排序,贱贱的用了std:map #include <iostream> #include <sstream> #include<algorithm> ...

  5. jQuery用FormData对象实现文件上传以及如何通过ajax下载文件

    之前在Vue的项目里面用到过文件上传,封装好的组件用起来比较顺手,查询Element-UI文档,十八般武器样样都有,一顿操作猛如虎,一看--跑偏了(⊙o⊙)-,我的意思就是用框架实现比较简单,但是如果 ...

  6. Halcon中二维码解析函数解码率和时长的优化方法

    Halcon中条码解析函数包容多种条码类型且简单强大.现有的‘Data Matrix ECC 200’.‘QR Code’和‘PDF417’等广泛使用的条码均能解析.简单是通过默认参数即可对多种条码进 ...

  7. Spring Cloud Config配置中心的使用

    一.概述 1. 为什么使用? 1> 配置文件太多,不方便维护 2> 配置文件一般都保存这各种明文显示的密码,无法保证配置内容的安全性,也无法做到按权限分配给个人 3> 更新配置项目需 ...

  8. python之private variables

    [python之private variables] “Private” instance variables that cannot be accessed except from inside a ...

  9. 13.Roman to Integer (HashTable)

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

  10. 表达式SpEL方式的属性注入

    -----------------------siwuxie095 表达式 SpEL 方式的属性注入 表达式 SpEL 方式的属性注入是 Spring 3.x 版本后提供的方式 1.编写一个普通类 B ...