You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中SQFlite的CRUD操作:如何实现待办项更新?

实现SQFlite待办项更新的两种方式

针对你的需求,这里提供两种和现有代码风格匹配的更新实现方式:

方式一:使用SQFlite内置的update方法

和你用insert添加数据的风格一致,通过构造更新字段的Map来操作:

final db = await _getDatabse();
// 构造要更新的字段键值对
Map<String, dynamic> updateData = {
  'description': updatedTodo.description,
  'isDone': updatedTodo.isDone == true ? 'true' : 'false',
};
// 执行更新,通过id匹配待更新条目
await db.update(
  'todo',
  updateData,
  where: 'id = ?',
  whereArgs: [updatedTodo.id],
);
  • updateData只需包含你要修改的字段,无需写入id(除非你要修改id本身)
  • where和whereArgs用于精准定位目标条目,避免误修改其他数据

方式二:使用rawUpdate原生SQL语句

和你用rawDelete的风格一致,直接编写SQL语句实现更新:

final db = await _getDatabse();
await db.rawUpdate(
  'UPDATE todo SET description = ?, isDone = ? WHERE id = ?',
  [
    updatedTodo.description,
    updatedTodo.isDone == true ? 'true' : 'false',
    updatedTodo.id
  ],
);

这种方式适配复杂更新场景,注意参数顺序要与SQL中的?一一对应

内容的提问来源于stack exchange,提问作者Nuaiman Ashiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 14:12:06