Я пытаюсь взять информацию, введенную пользователем в 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;
}
}