Ошибка SQLite (DatabaseException нет такой таблицы) во Flutter - PullRequest
0 голосов
/ 19 июня 2020

Database Helper Code

Как вы видите в коде, я создаю помощник базы данных. Я создаю 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]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...