博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xamarin.Android SQLite存储
阅读量:6200 次
发布时间:2019-06-21

本文共 3511 字,大约阅读时间需要 11 分钟。

在可移植类库 新建:

using SQLite.Net.Interop;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CommonLib{    ///     /// 数据存储环境    ///     public interface IDataStorage    {        ///         /// 存储路径        ///         string StoragePath { get; }        ///         ///SQLite 平台环境        ///     IOS: SQLite.Net.Platform.XamarinIOS.SQLitePlatformIOS        /// Android: SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid        ///...        ///         ISQLitePlatform SqlitePlatform { get; }    }}

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using SQLite.Net;namespace CommonLib{    ///     /// SQLite上下文    ///     public class SQLiteContext    {        public SQLiteContext() { }        private IDataStorage _dataStorage;        ///         /// 构造上下文        ///         /// 数据存储环境        public SQLiteContext(IDataStorage dataStorage)        {            _dataStorage = dataStorage;        }        ///         /// SQLite上下文        ///         protected SQLiteContext Connection {            get {                return this;            }        }        ///         /// 创建链接        ///         /// 
public SQLiteConnection New() { if (_dataStorage == null) throw new ArgumentException("SQLiteContext构造时缺少IDataStorage对象实例!"); return new SQLite.Net.SQLiteConnection(_dataStorage.SqlitePlatform, _dataStorage.StoragePath); } }}

 

在xamarin.Android 工程内新建 SQLiteStorage.cs

///     /// 数据存储环境    ///     public class SQLiteStorage : IDataStorage    {        ///         /// 存储路径        ///         public string StoragePath        {            get            {                // 获取数据库文件存储路径                return System.IO.Path.Combine(                    System.Environment.GetFolderPath(                        System.Environment.SpecialFolder.Personal), "db.db");            }        }        ///         /// SQLite 平台环境        /// Android: SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid        ///     IOS: SQLite.Net.Platform.XamarinIOS.SQLitePlatformIOS        ///     ...        ///         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{    ///     ///  涉及到操作SQLite时需要继承 ZsCMS.CommonLib.SQLiteContext    ///     public class TestSqlte: SQLiteContext    {        ///         ///         ///         /// 数据存储环境        public TestSqlte(IDataStorage dataStorage)            : base(dataStorage)// 将UI层平台信息传入父类.创建当前平台的SQLite上下文        { }        public void Insert(ZsCMS.ModelsLib.TestSqlte model)        {            // 通过父类Connection 创建数据链接            using (var conn= Connection.New())            {                // 当表存在不会被创建,不存在表则创建                conn.CreateTable
(); // 往表中添加数据 conn.Insert(model); } } public IEnumerable
Gets() { using (var conn = Connection.New()) { // 查询数据列表 return conn.Query
("select * from TestSqlte"); } } }}

 

转载于:https://www.cnblogs.com/mycing/p/5557027.html

你可能感兴趣的文章
10 个免费的 C/C++ 集成开发环境
查看>>
Django 中 发送邮件
查看>>
USACO 2.3 ;零的数列
查看>>
八、桥接模式--结构模式(Structural Pattern)
查看>>
iOS 在制作framework时候对aggregate的配置
查看>>
Absolute Horizontal And Vertical Centering In CSS
查看>>
store the XML schema with the data
查看>>
访问某类型的元数据的方式-TypeDescriptor 类
查看>>
Oracle 18c 数据库中scott用户不存在的解决方法
查看>>
TensorFlow安装 通过Anaconda Win10 64位 cpu and gpu
查看>>
【leetcode】Max Area of Island
查看>>
LAMP架构搭建+Discuz论坛搭建【weber出品必属精品】
查看>>
LeetCode算法题-Set Mismatch(Java实现)
查看>>
OO第三单元总结——JML规格设计
查看>>
leetcode 4Sum
查看>>
Paper阅读小结
查看>>
堡垒问题(深搜、回溯_子集树)
查看>>
loadrunner11无法自动弹出IE浏览器的问题解决
查看>>
Java之基本数据类型
查看>>
Spring 实战
查看>>