如何在 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] 这种方式