flutter sqfentity保存()方法不更新记录

r3i60tvu  于 2023-01-02  发布在  Flutter
关注(0)|答案(1)|浏览(111)

我正在使用sqfentity 2.3.0+5包为我的移动的应用程序存储本地数据。在文档中说,保存()方法可以用于更新和插入,但当我用保存()方法插入一些数据时,我无法在再次使用保存()方法后更新它。
下面是它的使用示例:

await ClubData(
          id: data[i]['id'],
          isUnlocked: 0,
          currentLevel: 1,
          totalLevel: data[i]['players'].length,
          logoURL: data[i]['logoURL'],
          points: 0,
          name: data[i]['name'])
      .save();

假设data[i] ['player '].length等于10,我第一次使用保存()方法插入数据。然后data[i] ['player'].length增加,我再次使用相同的方法,但totalLevel没有更新。我做错了什么?您能帮助我吗?

ia2d9nvy

ia2d9nvy1#

问题是你使用的是一个对象构造函数来设置数据,所以sqflite不知道数据已经被修改了。

final clubData = ClubData();
clubData.id = data[i]['id'],
clubData.isUnlocked= 0,
clubData.currentLevel= 1,
clubData.totalLevel= data[i]['players'].length,
clubData.logoURL= data[i]['logoURL'],
clubData.points= 0,
clubData.name= data[i]['name']
await clubData.save();

或者这个:

await ClubData.withFields(data[i]['id'], 0, 1, data[i]['players'].length, data[i]['logoURL'], 0, data[i]['name']).save();

如果成功了告诉我!

相关问题