SQLite PCL - SQLite.SQLiteException:文件已加密或不是数据库

时间:2016-11-16 13:54:11

标签: xamarin xamarin.android android-sqlite sqlite-net

我正在使用SQLite PCL和Xamarin,在我的应用程序中,我必须从Web服务下载一个SQLite文件作为字节数组(byte []),并在我的应用程序中将此文件用作SQLite数据库。是否可以使用SQLite PCL做到这一点?

我正在尝试这样做,但我有SQLiteException:文件已加密或不是数据库

这是我尝试创建SQLite的类:

public abstract class BaseLocalDao<POCO, Entity> : ILocalDao<POCO, Entity> where POCO : class, IPOCO where Entity : class, IEntity, new()
    {
        protected IConverter<POCO, Entity> _converter;
        protected readonly SQLiteConnection _dataBase;

        public BaseLocalDao()
        {
            var controleArquivoBanco = Mvx.Resolve<IControleArquivoBanco>();

            _dataBase = new SQLiteConnection(controleArquivoBanco.GetPath());        
            _dataBase.CreateTable<Entity>();
        }
}

连接是create,但是当CreateTable执行时,app会抛出我提到的SQLiteExcpetion。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

据我所知,您只能从文件初始化SQLiteConnection。使用以下语法获取仅内存流以使用内存数据库的唯一方法:

var connection = new SQLiteConnection("Data source=:memory:");

但是,您无法初始化数据库,而这正是您要尝试的数据