OnUpgrade SQFLITE:未处理的异常:DatabaseException(表UsernameTable没有名为rememberMe的列(Sqlite代码1):
未处理的异常:DatabaseException(表UsernameTable没有 名为rememberMe的列(Sqlite代码1):,编译时:插入或 替换为UsernameTable(username,rememberMe)值(?,),(OS 错误-2:没有此类文件或目录)sql“插入或替换到” UsernameTable(username,rememberMe)值(?,)参数[term@melfs, 1] } 我升级了我的数据库。我在OnUpgrade SQFLITE:未处理的异常:DatabaseException(表UsernameTable没有名为rememberMe的列(Sqlite代码1):,sqlite,flutter,dart,flutter-dependencies,sqflite,Sqlite,Flutter,Dart,Flutter Dependencies,Sqflite,未处理的异常:DatabaseException(表UsernameTable没有 名为rememberMe的列(Sqlite代码1):,编译时:插入或 替换为UsernameTable(username,rememberMe)值(?,),(OS 错误-2:没有此类文件或目录)sql“插入或替换到” UsernameTable(username,rememberMe)值(?,)参数[term@melfs, 1] } 我升级了我的数据库。我在UsernameTable表中添加了新列。但它不起作用。
UsernameTable
表中添加了新列。但它不起作用。我在这个数据库中已经有这么多记录。我不能删除
所以我如何向现有数据库添加新列。我使用了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)""");
}
您在
oldVersion
和newVersion
(\u onUpgrade
)中得到了什么值。我猜onUpgrade
中的查询没有被调用。如何调用onUpgrade?我在initDB()
中添加了。请尝试在openDatabase()中更改version
)
到5
或更高。您的数据库似乎出现了错误状况。我在代码中做了。不是吗?