[英]Flutter Sqflite Update
我需要一些新手帮助。
我正在尝试更新数据库的一列,但我想不出哈哈...
我有一个 controller,我在其中放置了我的方法,还有一个 db 助手。
部分帮手:
static Future<void> initDb() async {
if (_db != null) {
return;
}
try {
String _path = await getDatabasesPath() + 'cities.db';
_db = await openDatabase(
_path,
version: _version,
onCreate: (db, version) {
return db.execute(
"CREATE TABLE $_tableName("
"id INTEGER PRIMARY KEY AUTOINCREMENT, "
"name STRING, code STRING, "
"startDate STRING, startTime STRING, "
"endDate STRING, endTime STRING, "
"color INTEGER, isCompleted INTEGER)",
);
},
);
} catch (e) {
print(e);
}
}
static updateStatus(int id) async {
return await _db!.rawUpdate('''
UPDATE cities
SET color = ?
WHERE id = ?
''', [1, id]);
}
在 controller 我有方法:
void markColor(int id) async {
await DBHelper.updateStatus(id);
getCities();
}
在应用程序的某个地方,我想根据屏幕的 textEditingController 更新 String 代码,如 markColor 方法...我尝试了一千种不同的 forms ,但都没有用,有人可以帮忙吗?
Flutter 中的 SQFlite 更新通常通过update
function 本身完成,如下所示:
final updateCount = await db.update(
'PEOPLE',
{
'FIRST_NAME': person.firstName,
'LAST_NAME': person.lastName,
},
where: 'ID = ?',
whereArgs: [person.id],
);
PEOPLE
是您要更新的表的名称。'FIRST_NAME'
和'LAST_NAME'
,它们的值是要更新的值。where
要更新哪些行,在本例中,仅更新ID
列等于您在下一步中设置的值的行。whereArgs
是您where
参数中使用的 arguments 的列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.