Xamarin sqliteAsyncConnection Не удалось открыть файл базы данных - PullRequest
0 голосов
/ 06 октября 2018

Я использую Visual Studio для Mac.Я получаю сообщение об ошибке исключения в программе предварительного просмотра, в которой указывается

«Возникла исключительная ситуация при отображении элемента управления».

Когда я нажимаю восклицательный знак для получения подробной информации, в нем говорится

SQLite.SqlLiteException Не удалось открыть файл базы данных.

Не могу найти что-то не так с ним.Он отлично работает в симуляторе, но не работает в программе предварительного просмотра.

SQLiteConnection:

 public class SQLiteDb : ISOLiteDb
{
    public SQLiteAsyncConnection GetConnection()
    {
        var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        var path = Path.Combine(documentsPath, "MySQLite.db3"); 
       var conn = new SQLiteAsyncConnection(path);
       return conn;

    }

Resp:

public class UserService
{
    private readonly SQLiteAsyncConnection _connection;
    public UserService()
    {
        _connection = DependencyService.Get<ISOLiteDb>().GetConnection();

    }

    public async Task AddUser(User user)
    {
        await _connection.CreateTableAsync<User>();
        await _connection.InsertAsync(user);

    }

viewModel:

  private UserService _userService;
    private readonly IPageService _iPageService;

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }

    public SignOnViewModel(IPageService pageService)
    {
        _userService = new UserService();
        _iPageService = pageService;
    }

код:

 public partial class SignOnPage : ContentPage
{
    public SignOnPage()
    {
        BindingContext = new SignOnViewModel(new PageService());
        InitializeComponent();
    }

    void CreateAccount(object sender, System.EventArgs e)
    {
        (BindingContext as SignOnViewModel).AddUser();
    }
...