我的代码有问题,导致在database_helper.dart中午餐时出错
database_helper.dart是Sqlite中存储数据学习项目的一个文件,我遇到了这个问题, 我尝试了许多解决方案,例如卸载应用程序,然后重新安装
有人可以帮助我吗?
======
class DataBaseHelper {
static Database _db ;
final String userT = 'userT' ;
final String columnId = 'id' ;
final String columnUserName = 'username' ;
final String columnPassword = 'password' ;
final String columnAge = 'age' ;
final String columnCity = 'city' ;
=========
Future<Database> get dbase async {
if(_db != null) {
return _db ;
}
_db = await intDB();
return _db ;
}
=================
intDB() async {
Directory docDirectory = await getApplicationDocumentsDirectory() ;
String path = join(docDirectory.path , 'myDB.db') ;
var myOwnDB = await openDatabase(path , version: 1 , onCreate: _onCreate);
return myOwnDB ;
}
=========================
void _onCreate(Database db , int newVersion) async {
var sql = 'CREATE TABLE $userT ($columnId INTEGER PRIMARY KEY UNIQUE ,'
' $columnUserName TEXT , $columnPassword TEXT , $columnCity TEXT , $columnAge INTEGER ' ;
await db.execute(sql) ;
}
错误日志:
E / SQLiteLog(14607):“ INTEGER”附近的(1):语法错误
I / flutter(14607):错误DatabaseException(在“ INTEGER”附近:语法错误(代码1):,而在编译时:CREATE TABLE userT(id INTEGER主键唯一性,用户名TEXT,密码TEXT,city TEXT,age INTEGER )在此期间输入代码,然后关闭...
E / flutter(14607):[错误:flutter / lib / ui / ui_dart_state.cc(148)]未处理的异常:DatabaseException(“ INTEGER”附近:语法错误(代码1):,正在编译:CREATE TABLE userT (id INTEGER PRIMARY KEY UNIQUE,用户名TEXT,密码TEXT,城市TEXT,年龄INTEGER)
答案 0 :(得分:1)
语法错误。您忘了在行尾添加)
$columnAge INTEGER )
中检查sqllite代码
CREATE TABLE userT (columnId INTEGER PRIMARY KEY UNIQUE ,
columnUserName TEXT , columnPassword TEXT , columnCity TEXT , columnAge INTEGER)
之后)。效果很好。
编辑:您在评论中提到的插入到语句中的第二个问题
Insert Into语句的语法错误是不存在“ userCity”列。
在您提供的问题中,在创建表时,使用名称columnCity ='city'。因此您应该将名称更改为“ city”。
答案 1 :(得分:0)
尝试删除UNIQUE
他们没有在任何示例中包含该单词,因此可能尚未实现。