xamarin.Android SQLite儲存

來源:互聯網
上載者:User

標籤:

在可移植類庫 建立:

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儲存

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.