如何在 sqflite flutter 中使用适当的更新
how to use propper update in sqflite flutter
我是 flutter 的新手,我正在尝试使用 sqflite 制作一个待办事项应用程序,这样一切都可以离线...
我完成了添加任务,一切正常,但是当它进入更新时,就像我想从 0 到 1 切换收藏夹,反之亦然,我没有在网上找到 anthing..
这是我知道错误的代码:(
sql代码:
static Future<void> updateFavorite(
String table, Map<String, Object> data) async {
final db = await DBHelper.database();
db.update(
table,
data,
where: 'id = ?',
whereArgs: data['id'],
);
}
这是我的提供商:
void switchFavorite({
String id,
String title,
String description,
String startDate,
String finishDate,
int repeated,
int completed,
int favorite,
}) {
final updatedTask = Task(
id: id,
title: title,
description: description,
startDate: startDate,
finishDate: finishDate,
completed: completed,
favorite: favorite,
);
notifyListeners();
print(updatedTask.id);
DBHelper.updateFavorite('user_tasks', {
'id': updatedTask.id,
'title': updatedTask.title,
'description': updatedTask.description,
'startdate': updatedTask.startDate,
'finishdate': updatedTask.finishDate,
'completed': updatedTask.completed ?? 0,
'favorite': updatedTask.favorite,
});
}
这是我想通过按图标按钮使用它的方式:
IconButton(
icon: tasks.tasks[i].favorite == 0
? Icon(Icons.favorite_border)
: Icon(Icons.favorite),
onPressed: () {
Provider.of<TaskProvider>(
context,
listen: false,
).switchFavorite(
id: tasks.tasks[i].id,
title: tasks.tasks[i].title,
description: tasks.tasks[i].description,
startDate: tasks.tasks[i].startDate,
finishDate: tasks.tasks[i].startDate,
favorite: tasks.tasks[i].favorite == 0 ? 1 : 0,
);
},
),
希望你能帮助我 <3...
这里是我错误的用法:
static Future<void> updateFavorite(
String table, Map<String, Object> data) async {
final db = await DBHelper.database();
db.update(
table,
data,
where: 'id = ?',
whereArgs: data['id'],
);
}
我应该在哪里使用 whereargs: [id]
这种方式
我是 flutter 的新手,我正在尝试使用 sqflite 制作一个待办事项应用程序,这样一切都可以离线...
我完成了添加任务,一切正常,但是当它进入更新时,就像我想从 0 到 1 切换收藏夹,反之亦然,我没有在网上找到 anthing..
这是我知道错误的代码:(
sql代码:
static Future<void> updateFavorite(
String table, Map<String, Object> data) async {
final db = await DBHelper.database();
db.update(
table,
data,
where: 'id = ?',
whereArgs: data['id'],
);
}
这是我的提供商:
void switchFavorite({
String id,
String title,
String description,
String startDate,
String finishDate,
int repeated,
int completed,
int favorite,
}) {
final updatedTask = Task(
id: id,
title: title,
description: description,
startDate: startDate,
finishDate: finishDate,
completed: completed,
favorite: favorite,
);
notifyListeners();
print(updatedTask.id);
DBHelper.updateFavorite('user_tasks', {
'id': updatedTask.id,
'title': updatedTask.title,
'description': updatedTask.description,
'startdate': updatedTask.startDate,
'finishdate': updatedTask.finishDate,
'completed': updatedTask.completed ?? 0,
'favorite': updatedTask.favorite,
});
}
这是我想通过按图标按钮使用它的方式:
IconButton(
icon: tasks.tasks[i].favorite == 0
? Icon(Icons.favorite_border)
: Icon(Icons.favorite),
onPressed: () {
Provider.of<TaskProvider>(
context,
listen: false,
).switchFavorite(
id: tasks.tasks[i].id,
title: tasks.tasks[i].title,
description: tasks.tasks[i].description,
startDate: tasks.tasks[i].startDate,
finishDate: tasks.tasks[i].startDate,
favorite: tasks.tasks[i].favorite == 0 ? 1 : 0,
);
},
),
希望你能帮助我 <3...
这里是我错误的用法:
static Future<void> updateFavorite(
String table, Map<String, Object> data) async {
final db = await DBHelper.database();
db.update(
table,
data,
where: 'id = ?',
whereArgs: data['id'],
);
}
我应该在哪里使用 whereargs: [id]
这种方式