Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

GetConnection para UWP

Como ficaria essa classe para UWP? Tentei o código abaixo mas não funcionou... diz que não pode abrir o arquivo db3.

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Storage;
using Refeicao.Data;
using Refeicao.UWP;
using SQLite.Net;
using System.IO;
using SQLite.Net.Platform.WinRT;
using Xamarin.Forms;

[assembly:Dependency(typeof(SqLiteUwp))]
namespace Refeicao.UWP
{
    public class SqLiteUwp : ISqLite
    {
        public SqLiteUwp() { }

        public SQLiteConnection Connection()
        {
            var fileName = "Refeicoes.db3";
            var documents = ApplicationData.Current.LocalFolder.ToString();
            var path = Path.Combine(documents, fileName);

            return new SQLiteConnection(new SQLitePlatformWinRT(), fileName);
        }
    }
}
2 respostas

Fala aí Luis blz?

Cara tenta alterar de:

ApplicationData.Current.LocalFolder.ToString();

para:

ApplicationData.Current.LocalFolder.Path;

Espero ter ajudado!

solução!

Olá, Luis!

Desculpe a demora em responder. Não foi muito fácil encontrar a solução, mas aqui está.

1) Instalar a extensão "SQLite for Universal Windows Platform":

Tools > Extensions and Updates > Online, procurar por "SQLite for Universal Windows Platform"

2) Clicar com botão direito em References do projeto AluraNutricao.UWP

Add Reference > Universal Windows > Extensions, e marcar estas duas referências:

  • "SQLite for Universal Windows Platform"
  • "Visual C++ 2015 Runtime for Universal Windows Platform Apps”

3) Entrar no NuGet Package Manager Console e instalar no projeto UWP: Install-Package sqlite-net-pcl -Version 1.1.2

4) Deixe a classe SQLite_UWP conforme o código abaixo:

using AluraNutricao.Data;
using AluraNutricao.UWP;
using SQLite;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Storage;
using Xamarin.Forms;

[assembly: Dependency(typeof(SQLite_UWP))]
namespace AluraNutricao.UWP
{
    public class SQLite_UWP : ISQLite
    {
        public SQLite_UWP()
        {
        }

        public SQLiteConnection GetConnection()
        {
            var sqliteFilename = "Refeicao.db3";

            string path = Path.Combine(ApplicationData.Current.LocalFolder.Path, sqliteFilename);
            var conn = new SQLiteConnection(path);
            return conn;
        }
    }
}

Um abraço.