OnUpgradSQFLITE:未处理的异常:数据库异常(表UsernameTable没有名为RememberMe的列(Sqlite代码1):

OnUpgrade SQFLITE: Unhandled Exception: DatabaseException(table UsernameTable has no column named rememberMe (Sqlite code 1):(OnUpgradSQFLITE:未处理的异常:数据库异常(表UsernameTable没有名为RememberMe的列(Sqlite代码1):)
本文介绍了OnUpgradSQFLITE:未处理的异常:数据库异常(表UsernameTable没有名为RememberMe的列(Sqlite代码1):的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

未处理的异常:数据库异常(表UsernameTable没有 名为RememberMe(Sqlite代码1):的列,编译时:插入或 替换为UsernameTable(用户名,RememberMe)值(?,?),(OS 错误-2:没有这样的文件或目录))SQL‘INSERT或REPLACE INTO UsernameTable(用户名,RememberMe)值(?,?)‘Args[术语@Melfs, 1]}

我升级了数据库。我向UsernameTable表中添加了新列。但这并不管用。我在这个数据库里已经有这么多的记录了。我不能drop,所以我如何向现有数据库添加新列。我使用了Sqflite

 initDb() async {
    io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentsDirectory.path, "HelperDatabase.db");
    var theDb = await openDatabase(path, version: 4, onCreate: _onCreate, onUpgrade: _onUpgrade);
    return theDb;
  }

OnUpgrade方法。

 void _onUpgrade(Database db, int oldVersion, int newVersion)async{
  if(oldVersion != 5){
      await db.execute("ALTER TABLE UsernameTable ADD COLUMN rememberMe INTEGER DEFAULT 0");
    }
  }

onCreate方法

  void _onCreate(Database db, int version) async {
 await db.execute("""CREATE TABLE UsernameTable(username STRING)""");
}

推荐答案

您需要确保数据库版本匹配才能访问数据库。验证是否正在调用似乎传递新版本的_onUpgrade()方法。如果您考虑在SQFlite上打开时进行自动版本管理,也可以使用该功能。

这篇关于OnUpgradSQFLITE:未处理的异常:数据库异常(表UsernameTable没有名为RememberMe的列(Sqlite代码1):的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

FastAPI + Tortoise ORM + FastAPI Users (Python) - Relationship - Many To Many(FastAPI+Tortoise ORM+FastAPI用户(Python)-关系-多对多)
Window functions not working in pd.read_sql; Its shows error(窗口函数在pd.read_sql中不起作用;它显示错误)
(Closed) Leaflet.js: How I can Do Editing Geometry On Specific Object I Select Only?((已关闭)Leaflet.js:如何仅在我选择的特定对象上编辑几何图形?)
in sqlite update trigger with multiple if/Case Conditions(在具有多个IF/CASE条件的SQLite UPDATE触发器中)
Android: Why is Room so slow?(Android:为什么Room这么慢?)
Remote Procedure call failed with sql server 2008 R2(使用 sql server 2008 R2 的远程过程调用失败)