我正在尝试用创建时最初发送给它的对象类型更新我拥有的sqlite数据库。当我尝试更新它时,我会不断在问题标题中详细列出错误。为什么我会在更新时得到它,我该如何解决它?它创建了数据库fine并存储了初始数据fine。如果我遗漏了什么,请告诉我!谢谢
我在哪里创建新的Session对象并将其发送到数据库
onTap: () {
Session session = new Session();
session.selectedQuarterStatus = quarter[index].status;
session.selectedQuarter = quarter[index].quarter;
SessionDBProvider.sessionDB.updateSession(session);
Navigator.pop(context);
},
这就是创建数据库的地方。没有什么疯狂的
newSession(Session newSession) async {
final db = await database;
var res = await db.rawInsert('''
INSERT INTO session (
selected_quarter, status
) VALUES (?, ?)
''', [
newSession.selectedQuarter,
newSession.selectedQuarterStatus
]);
return res;
}
这是我尝试用Session对象更新函数的地方,它会出错
Future<dynamic> updateSession(session) async {
final db = await database;
var res = await db.update("session", session);
}
我假设您的Session模型类有一个toMap()
方法。在更新数据库时,您需要map()
您的模型。它应该是这样的:
Future<dynamic> updateSession(session) async {
final db = await database;
var res = await db.update("session", session.toMap());
}
你可以从官方文件中阅读更多内容。