Bom dia, ao chegar no where não está localizando, o que notei é que tem algumas diferenças no meu código, pois o android studio completa automaticamente algumas situações para mim!
import 'package:projeto_flutter/data/database.dart';
import 'package:sqflite/sqflite.dart';
import '../components/tasks.dart';
class TaskDao {
static const String tableSql = 'CREATE TABLE $_tablename('
'$_name TEXT, '
'$_difficulty INTEGER, '
'$_image TEXT)';
static const String _tablename = 'taskTable';
static const String _name = 'name';
static const String _difficulty = 'difficulty';
static const String _image = 'image';
}
save(Task tarefa) async {
final Database bancoDeDados = await getDatabase();
var itemExists = await find(tarefa.nome);
Map<String, dynamic> taskMap = toMap(tarefa);
if (itemExists.isEmpty) {
return await bancoDeDados.insert(TaskDao._tablename, taskMap);
} else {
return await bancoDeDados.update(
TaskDao._tablename,
taskMap,
where: '$_nome = ?',
whereArgs: [tarefa.nome],
);
}
}
Map<String, dynamic> toMap(Task tarefa){
final Map<String, dynamic> mapaDetarefas = Map();
mapaDetarefas[TaskDao._name] = tarefa.nome;
mapaDetarefas[TaskDao._difficulty] = tarefa.dificuldade;
mapaDetarefas[TaskDao._image] = tarefa.foto;
return mapaDetarefas;
}
Future<List<Task>> findAll() async {
final Database bancoDeDados = await getDatabase();
final List<Map<String, dynamic>> result =
await bancoDeDados.query(TaskDao._tablename);
return toList(result);
}
List<Task> toList(List<Map<String, dynamic>> listaDeTarefas) {
final List<Task> tarefas = [];
for (Map<String, dynamic> linha in listaDeTarefas) {
final Task tarefa = Task(linha[TaskDao._name], linha[TaskDao._image],
linha[TaskDao._difficulty]);
tarefas.add(tarefa);
}
return tarefas;
}
Future<List<Task>> find(String nomeDaTarefa) async {
final Database bancoDeDados = await getDatabase();
final List<Map<String, dynamic>> result = await bancoDeDados
.query(TaskDao._tablename, where: '$_name = ?', whereArgs: [nomeDaTarefa]);
return toList(result);
}
delete(String nomeDaTarefa) async {}