wp8.1 SQLite的基本使用
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的基本使用的更多相关文章
- 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 ...
- 轻量级本地数据库SQLite在WinRT的使用
开发环境:Windows 8.1 开发工具:Visual Studio Express 2013 for Windows SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开 ...
- (wp8.1开发)添加数据(SQLite)库到app
wp8.1只支持SQLite. 如何添加SQLite支持请看这里 我这里要说的是如何添加自己的数据库 1.添加数据库到项目中 2.右击选择属性 3.将生成操作改成内容 4.直接就可以引用数据库文件了
- wp8使用现有sqlite数据库
就是把现有文件转移到隔离空间即可 代码如下 private async void CopyDB() { StorageFile fage = await Appli ...
- Win10 UWP 开发系列:使用SQLite
在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中.但如果数据多的话,还是需要本地数据库的支持.在UWP开发中 ...
- Windows Phone8 中如何引用 SQLite 数据库
SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开发,使用非常广泛 2.SQLite是一款跨平台的数据库,支持Windows.Linux.Android.IOS.Windo ...
- Windows Phone8 中如何引用 SQLite 数据库2
本博文编写环境 VS2013 + WP8 SDK 上篇介绍完了SQLite在wp中的部署(具体请参阅 Windows Phone8 中如何引用 SQLite 数据库),下面来看如何使用 SQLite ...
- windows phone 8.1开发SQlite数据库操作详解
原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...
- 在Windows Phone 8.1中使用Sqlite数据库
前言 我的工作目前不涉及到Windows phone的开发,但是业余时间也开发过几款app.以前由于各种条件的限制,只接触到WP8.0设备的app开发. 最近几个月开始将WP8的应用迁移到WP8.1, ...
随机推荐
- Electron 前端页面导入jQuery 出现错误Uncaught ReferenceError: jQuery is not defined
如下: <script src="../assets/js/jquery-1.10.2.js"></script> 方法1 改为: <script&g ...
- springcloud(四) ribbon和feign
Ribbon使用 order-service工程: application.yml: server: port: 9010 #order 服务都是用90 开头的端口 spring: applicati ...
- 33_java之类加载器和反射
01类加载器 * A.类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. * a 加载 * 就是指将class文件读入内存,并为之 ...
- 《OpenCL异构并行编程实战》第十二至十四章
▶ 第十二章,在其他语言中使用 OpenCL ● JOCL(Java Building for OpenCL),PyOpenCL ● 一个 PyOpenCL 的例子代码,需要 pyopencl 包 i ...
- MySQL 常用命令行
增加新用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本 ...
- 6 MySQL--表--完整性约束
参考:https://www.cnblogs.com/alice-bj/p/8824693.html 完整性约束: http://www.cnblogs.com/linhaifeng/articles ...
- JS 位数不够自动左补0
var mycode = "11"; mycode = (Array(4).join(0) + parseInt(mycode)).slice(-4);//0011 mycode1 ...
- my sql存储过程 基本使用
--------------创建不带参数的存储过程----------------- DELIMITER;; drop PROCEDURE if EXISTS selectStudent; creat ...
- js 实现图片上传 续
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- 117. Populating Next Right Pointers in Each Node II (Tree; WFS)
Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...