Приложение Xamarin.forms падает при вставке данных в базу данных SQLite - PullRequest
0 голосов
/ 03 июля 2018

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

вот необходимый код и соответствующие им классы.

Это в AddPage.xaml.cs:

private async Task AddButton_Clicked(object sender, EventArgs e)
{
    App.characterDatabase.SaveCharacter(new Character()
    {
        Name = NameTxt.Text,
        Species = SpeciesTxt.Text,
        ImageUrl = ImageUrlTxt.Text
    });
}

CharacterDatabaseController.cs

public class CharacterDatabaseController
{

    static object locker = new object();

    SQLiteConnection database;

    public CharacterDatabaseController()
    {
        database = DependencyService.Get<IDatabaseConnection>().DbConnection();
        database.CreateTable<Character>();
    }

    public Character GetCharacter()
    {
        lock (locker)
        {
            if (database.Table<Character>().Count() == 0)
            {
                return null;
            }
            else
            {
                return database.Table<Character>().First();
            }
        }
    }

    public int SaveCharacter(Character character)
    {
        lock (locker)
        {
            if (character.Id != 0)
            {
                database.Update(character);
                return character.Id;
            }
            else
            {
                return database.Insert(character);
            }
        }
    }

    public int DeleteCharacter(int id)
    {
        lock (locker)
        {
            return database.Delete<Character>(id);
        }
    }
}

и App.cs:

public static CharacterDatabaseController characterDatabase
{
    get
    {
        if (characterDatabase == null)
        {
            CharacterDatabase = new CharacterDatabaseController();
        }
        return CharacterDatabase;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...