在可移植类库 新建:

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存储的更多相关文章

  1. Xamarin android使用Sqlite做本地存储数据库

    android使用Sqlite做本地存储非常常见(打个比方就像是浏览器要做本地存储使用LocalStorage,貌似不是很恰当,大概就是这个意思). SQLite 是一个软件库,实现了自给自足的.无服 ...

  2. Xamarin android 的WebClient Json下载并存储本地及sqlite数据库

    这一点雕虫小技可能对熟悉的人来说已经不值一提.但是我想,既然这些都是常用的功能,集成在一起做个笔记也有点意义吧. 首先,json 是传递数据的事实标准了.所以先说一下将它从服务器端下载下来..net ...

  3. android之存储篇——SQLite数据库

    转载:android之存储篇_SQLite数据库_让你彻底学会SQLite的使用 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么. 例如:可以在In ...

  4. Android数据存储三剑客——SharedPreferences、File、SQLite

    Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...

  5. [ Android 五种数据存储方式之三 ] —— SQLite存储数据

    SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, Python)都使用了 ...

  6. Android数据存储:SQLite

    Android数据存储之SQLite SQLite:Android提供的一个标准的数据库,支持SQL语句.用来处理数据量较大的数据.△ SQLite特征:1.轻量性2.独立性3.隔离性4.跨平台性5. ...

  7. Android 数据存储03之SQLite

    SQLite数据存储 Android 集成了 SQLite 数据库.它存储在 /data/data/< 项目文件夹 >/databases/ 下.Android 开发中使用 SQLite ...

  8. Xamarin.Android之SQLite.NET ORM

    一.前言 通过<Xamarin.Android之SQLiteOpenHelper>和<Xamarin.Android之ContentProvider>的学习,我们已经掌握了如何 ...

  9. Android数据存储之SQLite数据库

    Android数据存储 之SQLite数据库简介 SQLite的相关知识,并结合Java实现对SQLite数据库的操作. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎. ...

随机推荐

  1. 我与网站的日常-webshell命令执行

    本文比较基础,其中有一个知识点关于php执行系统命令的函数 ,我们用最简单的webshell来说说传值问题的影响, 本文作者: i春秋签约作家——屌丝绅士 0×01前言:    小表弟又来写文章了,这 ...

  2. java保留小数点两位的4种方法

    import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public c ...

  3. ReentrantLock锁的释放

    一:代码 reentrantLock.unlock(); 虽然只有一句,但是源码却比较多: public final boolean release(int arg) { if (tryRelease ...

  4. System.Thread.TImer控件——http://www.360doc.com/content/11/0812/11/1039473_139824496.shtml

    http://www.360doc.com/content/11/0812/11/1039473_139824496.shtml

  5. J02-Java IO流总结二 《概述》

    1  流的概念 流是一个信息的通道,通过通道可以访问通道连接的文件对象. 2  流的分类 根据流中数据的流向,可分为输入流和输出流 输入流:从其他的地方流入到程序内存中的,比如InputStream. ...

  6. Linux CentOS7系统中php安装配置

    本篇讲解如何配置php开发环境,让你的php代码可以正常的在网页中运行. 准备工作 linux centos7操作系统 ssh软件 nginx php资源 想要了解更多关于php的内容,请访问: ph ...

  7. Android_设置全屏的方法

    在开发的过程中,我们有时候需要让我们应用程序全屏或者是让某个页面全屏,在今天的android小技巧中我们来讲讲如何设置我们的应用程序 全屏: 通常我们有三种方式: 1.在onCreate方法中添加代码 ...

  8. springboot-7-配置druid数据源监视

    关于druid数据源的配置, 上个博客已经说过了,再说一遍吧 , 引入依赖 , 配置properties参数 , 编写servlet和filter提供页面监视 , 测试 1, 引入maven依赖 &l ...

  9. Nodejs学习笔记(八)—Node.js + Express 实现上传文件功能(felixge/node-formidable)

    前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次 ...

  10. 使用vue2+Axios+Router 之后的总结以及遇到的一些坑

    构建 vue有自己的脚手架构建工具vue-cli,使用起来非常方便,使用webpack来集成各种开发便捷工具,比如: 代码热更新,修改代码之后网页无刷新改变,对前端开发来说非常的方便 PostCss, ...