问题描述
我正在尝试构建一个记事应用程序。我在sqflite上观看了一些教程,以便在应用终止后保存数据。我已经成功保存了数据,但无法删除数据。
这是我创建的DBelper类:
import 'package:sqflite/sqflite.dart' as sql;
import 'package:path/path.dart' as path;
import 'package:sqflite/sqlite_api.dart';
class DBHelper {
static Future<Database> databse() async {
final dbPath = await sql.getDatabasesPath();
return sql.openDatabase(path.join(dbPath,'notes.db'),onCreate: (db,version) {
return db.execute(
'CREATE TABLE user_notes(id TEXT PRIMARY KEY,title TEXT,text TEXT)');
},version: 1);
}
static Future<void> insert(String table,Map<String,Object> data) async {
final db = await DBHelper.databse();
db.insert(
table,data,);
}
static Future<List<Map<String,dynamic>>> getData(String table) async {
final db = await DBHelper.databse();
return db.query(table);
}
}
这就是我保存数据的方式:
onpressed: () {
Provider.of<Notes>(context,listen: false)
.addNote(newNoteTitle,newNoteText);
DBHelper.insert('user_notes',{'title': newNoteTitle,'text': newNoteText});
Navigator.pop(context);
},
我一直在尝试创建DBHelper.deleteNote,但是即使我设法编写一些没有错误的代码,也不会删除任何内容。预先感谢您的帮助
解决方法
如果您只想删除便笺,则可以使用其id
,如下所示:
deleteNote(String id) async {
final db = await DBHelper.databse();
db.delete('user_notes',where: 'id = ?',whereArgs: [id]);
}