Как вы видите в коде, я создаю помощник базы данных. Я создаю 4 таблицы в базе файлов и пытаюсь получить все элементы из первой таблицы с помощью метода:
Future<List> getAllMissions() async{
var databaseClient = await database;
var result = await databaseClient.query(_missionTable , columns: [_missionId , _missionTitle , _missionDescription , _missionIsCompleted]);
return result.toList();
}
Я пытаюсь отладить ошибку и обнаружил, что результат был пустым, когда я пытался чтобы получить элементы из таблицы
, если у кого-то есть решение этой ошибки, дайте мне его!
_onCreate(Database database, int version) async {
_database.execute('''CREATE TABLE $_missionTable($_missionId INTEGER PRIMARY KEY , $_missionTitle TEXT NOT NULL , $_missionDescription TEXT NOT NULL , $_missionIsCompleted SMALLINT DEFAULT 0);''');
_database.execute('''CREATE TABLE $_challengeInfoTable($_challengeInfoId INTEGER PRIMARY KEY , $_challengeInfoHeroName VARCHAR(10) NOT NULL , $_challengeInfoTarget VARCHAR(10) NOT NULL , $_challengeInfoIsCompleted SMALLINT DEFAULT 0 );''');
_database.execute('''CREATE TABLE $_sessionTable($_sessionId INTEGER NOT NULL , $_sessionIsCompleted SMALLINT DEFAULT 0 , $_sessionAcountingDay SMALLINT DEFAULT 0 , $_sessionPoints INTEGER DEFAULT 0 , FOREIGN KEY($_sessionId) REFERENCES $_challengeInfoTable($_challengeInfoId) ON DELETE CASCADE ON UPDATE CASCADE);''');
_database.execute('''CREATE TABLE $_dailyMissionsTable( $_dailyMissionsId INTEGER NOT NULL , $_dailyMissionsTitle TEXT NOT NULL , $_dailyMissionsIsCompleted SMALLINT DEFAULT 0 , $_dailyMissionsPoints INTEGER DEFAULT 0 , FOREIGN KEY($_dailyMissionsId) REFERENCES $_sessionTable($_sessionId) ON DELETE CASCADE ON UPDATE CASCADE);''');
}
/*you can add and edit a mission into the db with this methodeds*/
Future<int> addMission(MissionModel missionModel) async{
var databaseClient = await database;
//add mission statememnt
return await databaseClient.insert(_missionTable, missionModel.toMap());
}
Future<List> getAllMissions() async{
var databaseClient = await database;
//get all mission from db
var result = await databaseClient.query(_missionTable , columns: [_missionId , _missionTitle , _missionDescription , _missionIsCompleted]);
//return all missin as a list
return result.toList();
}
Future<int> updateMission(MissionModel missionModel) async{
var databaseClient = await database;
//mission update statement
return await databaseClient.update(_missionTable, missionModel.toMap() , where: '$_missionId = ?' , whereArgs: [missionModel.id]);
}