Xamarin Form Sqlite Connection: метод не найден: int SQLite.SQLiteConnection.CreateTable (SQLite.CreateFlags) - PullRequest
0 голосов
/ 10 января 2020

Сборка успешна, но когда дело доходит до этого метода, он выдает исключение. Это произошло, когда я обновил новые пакеты в NuGet Packages.

public static string checkToken()
        {
            string token1 = "";
            try
            {
                SQLiteConnection db = DependencyService.Get<SQLiteInterface>().GetConnection();
                db.CreateTable<Token>();
            Token t = db.Table<Token>().FirstOrDefault();
            if (t != null)
            {
                DateTime dt = t.timeCreated;
                DateTime tmp = DateTime.Now;

                double diff = (tmp - dt).TotalMinutes;
                if (diff > 60.0 || App.IsUserLoggedIn == false)
                {
                    token1 = "expired";
                    db.Delete(t);
                }
                else
                {
                    token1 = t.token;
                }
            }
        }
        catch (Exception e)
        {
            e.ToString();
        }
        return token1;
    }

Вот изображение.

enter image description here

ОБНОВЛЕНО :

Этот пакет от .Droid
enter image description here

Этот пакет от Portable
enter image description here

Ответы [ 2 ]

1 голос
/ 10 января 2020

Как сказал Janwilx72, вам нужно установить пакет sqlite- net -pcl от Nuget для Pcl и платформ. Вам не нужен пакет, который вы предоставили.

enter image description here

Тогда вы можете использовать SQLiteConnection.CreateTable () и не иметь проблем.

Я делаю один пример для Android в github, на который вы можете посмотреть:

https://github.com/CherryBu/sqliteapp

Если вы хотите сделать это в ios или другую платформу, вы можете посмотреть эту статью:

https://dzone.com/articles/register-and-login-using-sqlite-in-xamarinforms

https://docs.microsoft.com/en-us/archive/msdn-magazine/2016/july/xamarin-working-with-local-databases-in-xamarin-forms-using-sqlite

1 голос
/ 10 января 2020

Это раздражает, но есть очень хороший шанс, что вам придется удалить все эти пакеты и переустановить их. Попробуйте удалить их и добавить следующие пакеты

SQLitePCLRaw.bundle_green версии 1.1.2 в ваши собственные проекты (не в PCL)

SQLitePCLRaw.core версии 1.1.2 в ваши собственные проекты (не в PCL)

SQLitePCLRaw.lib.e_sqlite3. android Версия 1.1.2

SQLitePCLRaw.provider.e_sqlite3. android Версия 1.1.2

SQLitePCLRaw.provider .sqlite3.ios_unified Версия 1.1.2

, а затем при создании базы данных инициализируйте ее, используя следующий код в качестве пути:

string path = System.IO.Path.Combine(System.Environment
            .GetFolderPath(System.Environment.SpecialFolder.Personal), "localstore.db");

ИЛИ

Если это не работает, удалите их все и добавьте только один из всех ваших проектов

https://www.nuget.org/packages/sqlite-net-pcl/

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...