首页 > 解决方案 > 使用滑动从数据库中删除项目 - Sqflite

问题描述

我想实现一个功能,当我滑动列表项时,它会从数据库中删除该项目。我将 dismisible 用于滑动和删除部分,但我不知道如何从数据库中删除项目。这是我的数据库帮助文件:

import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:wodo/models/task.dart';

class DatabaseHelper {
  Future<Database> database() async {
    return openDatabase(
      join(await getDatabasesPath(), 'todo_database.db'),
      onCreate: (db, version) {
        return db.execute(
            "CREATE TABLE tasks(id INTEGER PRIMARY KEY, name TEXT, date TEXT)");
      },
      version: 1,
    );
  }

  Future<void> insertTask(Task task) async {
    Database _db = await database();
    await _db.insert('tasks', task.toMap(),
        conflictAlgorithm: ConflictAlgorithm.replace);
  }

  Future<List<Task>> getTasks() async {
    Database db = await database();
    List<Map<String, dynamic>> taskMap = await db.query('tasks');
    return List.generate(taskMap.length, (index) {
      return Task(
          id: taskMap[index]['id'],
          name: taskMap[index]['name'],
          date: taskMap[index]['date']);
    });
  }
}

标签: androidsqlitefluttersqfliteflutter-listview

解决方案


要删除一个项目,只需使用 delete 方法。如文档中所述

db.delete(TABLE_NAME, where: "id = ?", whereArgs: [id]);

推荐阅读