Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
颤振中的Sqlite数据未正确更新_Sqlite_Flutter_Dart - Fatal编程技术网

颤振中的Sqlite数据未正确更新

颤振中的Sqlite数据未正确更新,sqlite,flutter,dart,Sqlite,Flutter,Dart,我有一个小的实践应用程序,我想学习在颤振Sqlite。问题是,一切正常,单击此按钮时数据会更新,但页面更改后数据不会保持更新这是更新按钮的代码: onPressed: () { if (!_formKey.currentState.validate()) { print("form"); return;

我有一个小的实践应用程序,我想学习在颤振Sqlite。问题是,一切正常,单击此按钮时数据会更新,但页面更改后数据不会保持更新这是更新按钮的代码:

onPressed: () {
                            if (!_formKey.currentState.validate()) {
                              print("form");
                              return;
                            }

                            _formKey.currentState.save();

                            Drink drink = Drink(
                              name: _name,
                              
                            );
                            
                            DatabaseProvider.db.updateDrink(widget.drink).then(
                                  (storedDrink) =>
                                      BlocProvider.of<DrinkBloc>(context).add(
                                        
                                    UpdateDrink(widget.drinkIndex, drink),
                                  ),
                                );
 class UpdateDrink extends DrinkEvent {
  Drink newDrink;
  int drinkIndex;

  UpdateDrink(int index, Drink drink) {
    newDrink = drink;
    drinkIndex = index;
Future<int> updateDrink(Drink drink) async {
final db = await database;

return await db.update(
  TABLE_DRINK,
  drink.toMap(),
  where: "drink_id = ?",
  whereArgs: [drink.id],
);
这是DatabaseProvider中的更新功能:

onPressed: () {
                            if (!_formKey.currentState.validate()) {
                              print("form");
                              return;
                            }

                            _formKey.currentState.save();

                            Drink drink = Drink(
                              name: _name,
                              
                            );
                            
                            DatabaseProvider.db.updateDrink(widget.drink).then(
                                  (storedDrink) =>
                                      BlocProvider.of<DrinkBloc>(context).add(
                                        
                                    UpdateDrink(widget.drinkIndex, drink),
                                  ),
                                );
 class UpdateDrink extends DrinkEvent {
  Drink newDrink;
  int drinkIndex;

  UpdateDrink(int index, Drink drink) {
    newDrink = drink;
    drinkIndex = index;
Future<int> updateDrink(Drink drink) async {
final db = await database;

return await db.update(
  TABLE_DRINK,
  drink.toMap(),
  where: "drink_id = ?",
  whereArgs: [drink.id],
);
未来更新链接(饮料)异步{
最终数据库=等待数据库;
return wait db.update(
桌上饮料,
喝。汤姆普(),
其中:“饮料id=?”,
wherergs:[drink.id],
);
正如我所解释的,更新确实有效,但在页面更改或重新启动应用程序后,它不会保持持久性。我怀疑需要在init中的某个位置调用更新,或者我没有正确替换某些变量。基本上,我需要的是将更新后的数据持久存储在db中。谢谢