Dart 2.18.1空安全下sqflite数据库update/delete方法报错求助
解决sqflite中DatabaseException类型导致的update/delete方法未定义错误
错误原因
你在updateProduct和deleteProduct方法中,错误地将数据库实例的类型声明为DatabaseException——这是sqflite用于封装异常信息的类,本身并不提供update、delete这类数据库操作方法。正确的数据库实例类型应该是sqflite的Database类。
修复后的代码
import 'package:sqflite/sqflite.dart'; // 确保已导入Database类 Future<Product> updateProduct(Product product) async{ Database db = await instance.database; await db.update(_table_products, Product.toMap(product) , where: 'id = ?', whereArgs: [product.id]); return product; } Future deleteProduct(Product product) async { Database db = await instance.database; var deletedProduct = await db.delete(_table_products, where: 'id = ?', whereArgs: [product.id]); return product; }
关键修改点
- 将两处的
DatabaseException db替换为Database db - 确保代码顶部已导入sqflite的
Database类(若尚未导入)
内容的提问来源于stack exchange,提问作者induwara widarshana
相关产品推荐
相关产品推荐

