O erro está no título, acontece quando eu tento salvar uma task nova
save(Tasks tarefa) async {
Database db = await getDatabase();
var exists = await find(tarefa.nome);
if (exists.isEmpty) {
return await db.insert(_tbName, toMap(tarefa));
} else {
return await db.update(_tbName, toMap(tarefa),
where: '$_clNome = ?', whereArgs: [tarefa.nome]);
}
}
ElevatedButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
String nome = controllerNome.text;
int dificuldade =
int.parse(controllerDificuldade.text);
String urlImagem = controllerImagem.text;
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Adicionando Tarefa...')));
TaskDAO().save(Tasks(nome, urlImagem, dificuldade));
Navigator.pop(context);
}
},
child: const Text('Adicionar'))
Stacktrace completo:
E/flutter ( 6636): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DatabaseException(error database_closed)
E/flutter ( 6636): #0 SqfliteDatabaseMixin.checkNotClosed (package:sqflite_common/src/database_mixin.dart:438:7)
E/flutter ( 6636): #1 SqfliteDatabaseExecutorMixin.rawInsert (package:sqflite_common/src/database_mixin.dart:48:8)
E/flutter ( 6636): #2 SqfliteDatabaseExecutorMixin.insert (package:sqflite_common/src/database_mixin.dart:59:12)
E/flutter ( 6636): #3 TaskDAO.save (package:alura_flutter_curso_1/data/task_dao.dart:20:23)
E/flutter ( 6636): <asynchronous suspension>
E/flutter ( 6636):