Sqlite Xamarin Readonly异常

时间:2017-07-21 12:35:56

标签: c# sqlite xamarin.forms

我在Xamarin Forms应用程序中使用SQLite。我已经获得了SqlLite连接路径的声明,如下所示

public class AnrodidSqlite {  string GetPath()
    {
        try
        {
            var databaseName = "mydb";
            var sqliteFilename = $"{databaseName}.db3";
            var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            var path = Path.Combine(documentsPath, sqliteFilename);

            if (File.Exists(path))
            {
                File.Delete(path);

            }
            using (File.Create(path))
            {
                var connection= new SQLiteConnection(path);                    
                connection.CreateTable<Location>();                    
            }

            return path;
        }
        catch (Exception ex)
        {
            throw;
        }
    }




    public SQLiteAsyncConnection GetAsyncConnection()
    {
        var path = GetPath();
        var conn = new SQLiteAsyncConnection(path,SQLiteOpenFlags.ReadWrite);
        return conn;
    }

}

在这里用dal层调用

public class LocationDal{   SQLiteAsyncConnection  _database; public LocationDal(AnrodidSqlite sqlite ) {  _database=sqlite.GetAsyncConnection();}

        public async Task SaveLocation(SearchCriteria searchCriteria)
    {
        try
        {

            var originCity = searchCriteria.OriginCity;
            await _database.InsertAsync(destinationCity);
        } catch (SQLiteException ex)
        {

            throw;
        }
        catch (Exception ee)
        {

        }
    }}

我得到的异常是来自Sqlite的Readonly异常。异常消息是 SQLite.SQLite3 + Result.ReadOnly

0 个答案:

没有答案