xamarin.Android SQLite存储
在可移植类库 新建:
using SQLite.Net.Interop; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CommonLib
{
/// <summary>
/// 数据存储环境
/// </summary>
public interface IDataStorage
{
/// <summary>
/// 存储路径
/// </summary>
string StoragePath { get; }
/// <summary>
///SQLite 平台环境
/// IOS: SQLite.Net.Platform.XamarinIOS.SQLitePlatformIOS
/// Android: SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid
///...
/// </summary>
ISQLitePlatform SqlitePlatform { get; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; using SQLite.Net; namespace CommonLib
{
/// <summary>
/// SQLite上下文
/// </summary>
public class SQLiteContext
{
public SQLiteContext() { } private IDataStorage _dataStorage; /// <summary>
/// 构造上下文
/// </summary>
/// <param name="dataStorage">数据存储环境</param>
public SQLiteContext(IDataStorage dataStorage)
{
_dataStorage = dataStorage;
} /// <summary>
/// SQLite上下文
/// </summary>
protected SQLiteContext Connection {
get {
return this;
}
} /// <summary>
/// 创建链接
/// </summary>
/// <returns></returns>
public SQLiteConnection New()
{
if (_dataStorage == null)
throw new ArgumentException("SQLiteContext构造时缺少IDataStorage对象实例!"); return new SQLite.Net.SQLiteConnection(_dataStorage.SqlitePlatform, _dataStorage.StoragePath);
}
}
}
在xamarin.Android 工程内新建 SQLiteStorage.cs
/// <summary>
/// 数据存储环境
/// </summary>
public class SQLiteStorage : IDataStorage
{
/// <summary>
/// 存储路径
/// </summary>
public string StoragePath
{
get
{
// 获取数据库文件存储路径
return System.IO.Path.Combine(
System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal), "db.db");
}
} /// <summary>
/// SQLite 平台环境
/// Android: SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid
/// IOS: SQLite.Net.Platform.XamarinIOS.SQLitePlatformIOS
/// ...
/// </summary>
public SQLite.Net.Interop.ISQLitePlatform SqlitePlatform
{
get
{
return new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid();
}
}
}
使用例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using SQLite.Net;
using CommonLib; namespace BusinessLib
{
/// <summary>
/// 涉及到操作SQLite时需要继承 ZsCMS.CommonLib.SQLiteContext
/// </summary>
public class TestSqlte: SQLiteContext
{
/// <summary>
///
/// </summary>
/// <param name="dataStorage">数据存储环境</param>
public TestSqlte(IDataStorage dataStorage)
: base(dataStorage)// 将UI层平台信息传入父类.创建当前平台的SQLite上下文
{ } public void Insert(ZsCMS.ModelsLib.TestSqlte model)
{
// 通过父类Connection 创建数据链接
using (var conn= Connection.New())
{
// 当表存在不会被创建,不存在表则创建
conn.CreateTable<ZsCMS.ModelsLib.TestSqlte>(); // 往表中添加数据
conn.Insert(model);
}
} public IEnumerable<ZsCMS.ModelsLib.TestSqlte> Gets()
{
using (var conn = Connection.New())
{
// 查询数据列表
return conn.Query<ZsCMS.ModelsLib.TestSqlte>("select * from TestSqlte");
}
}
}
}
xamarin.Android SQLite存储的更多相关文章
- Xamarin android使用Sqlite做本地存储数据库
android使用Sqlite做本地存储非常常见(打个比方就像是浏览器要做本地存储使用LocalStorage,貌似不是很恰当,大概就是这个意思). SQLite 是一个软件库,实现了自给自足的.无服 ...
- Xamarin android 的WebClient Json下载并存储本地及sqlite数据库
这一点雕虫小技可能对熟悉的人来说已经不值一提.但是我想,既然这些都是常用的功能,集成在一起做个笔记也有点意义吧. 首先,json 是传递数据的事实标准了.所以先说一下将它从服务器端下载下来..net ...
- android之存储篇——SQLite数据库
转载:android之存储篇_SQLite数据库_让你彻底学会SQLite的使用 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么. 例如:可以在In ...
- Android数据存储三剑客——SharedPreferences、File、SQLite
Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...
- [ Android 五种数据存储方式之三 ] —— SQLite存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, Python)都使用了 ...
- Android数据存储:SQLite
Android数据存储之SQLite SQLite:Android提供的一个标准的数据库,支持SQL语句.用来处理数据量较大的数据.△ SQLite特征:1.轻量性2.独立性3.隔离性4.跨平台性5. ...
- Android 数据存储03之SQLite
SQLite数据存储 Android 集成了 SQLite 数据库.它存储在 /data/data/< 项目文件夹 >/databases/ 下.Android 开发中使用 SQLite ...
- Xamarin.Android之SQLite.NET ORM
一.前言 通过<Xamarin.Android之SQLiteOpenHelper>和<Xamarin.Android之ContentProvider>的学习,我们已经掌握了如何 ...
- Android数据存储之SQLite数据库
Android数据存储 之SQLite数据库简介 SQLite的相关知识,并结合Java实现对SQLite数据库的操作. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎. ...
随机推荐
- tcp ip三次握手链接和四次挥手断开
先来个整体的流程图 一 三次握手目的是为了建立连接... 1 核心的就是client端和service端,进行数据"报文" 交换 2 报文,目的是互相通知,确认链接 ...
- (转)Python——functools
原文:https://www.cnblogs.com/Security-Darren/p/4168310.html#t7 http://www.wklken.me/posts/2013/08/18/p ...
- (转)MySQL备份原理详解
MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之 ...
- Java之集合(十八)DelayQueue
转载请注明源出处:http://www.cnblogs.com/lighten/p/7493735.html 1.前言 本章介绍阻塞队列DelayQueue,这是一个无界阻塞队列.其存储延时的元素,只 ...
- Java之集合(二)ArrayDeque
转载请注明源出处:http://www.cnblogs.com/lighten/p/7283928.html 1.前言 上章讲解了Java中的集合接口和相关实现抽象类,本章开始介绍一些具体的实现类,第 ...
- rabbitmq实现一台服务器同时给指定部分的consumer发送消息(tp框架)(第六篇)
previous article: http://www.cnblogs.com/spicy/p/7989717.html 上一篇学习了,发送消息的时候用direct类型的exchange,绑定不同 ...
- 如何删除Eclipse里某个工作空间?
很多时候,一个Eclipse中或多或少的都会有那么几个工作空间(workspace),但是久而久之你会发现有些工作空间你觉得不再需要了或者觉得碍眼,怎么办? 其实很简单,方法有两种. 1.打开你的Ec ...
- saltstack快速入门
SALTSTACK是什么? Salt是一种和以往不同的基础设施管理方法,它是建立在大规模系统高速通讯能力可以大幅提升的想法上.这种方法使得Salt成为一个强大的能够解决基础设施中许多特定问题的多任务系 ...
- eclipse maven插件创建maven项目
1.下载好maven压缩包http://maven.apache.org/ ,解压后放到想要安装的目录,如E:/server/maven,然后配置好maven环境变量,找到maven安装目录下conf ...
- 数据库--oracle安装配置(本地安装的步骤及各种问题解决方案)
oracle版本:Oracle 11g 本地电脑配置:安装内存8G 64为操作系统win8.1 下载Oracle 11g压缩包: 1 网址http://www.oracle.com/technetwo ...