android-“创建表”附近的SQLite语法错误
作者:互联网
这是我的代码:
String CREATE_DATABASE = "CREATE TABLE " + TABLE_NAME + "(" +
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
"title TEXT, "+
"author TEXT, "+
"state TEXT);";
db.execSQL(CREATE_DATABASE);
LogCat说:12-11 23:43:50.553:E / AndroidRuntime(3706):android.database.sqlite.SQLiteException:在“ CREATETABLE”附近:语法错误(代码1):,编译时:CREATETABLE PapersTable(_id INTEGERPRIMARY KEYAUTOINCREMENT,标题TEXT,作者TEXT,状态TEXT);
解决方法:
发布后,CREATE TABLE语法就可以了.
我怀疑CREATE和TABLE之间有一个不间断的空格(ASCII 0xA0).将其替换为常规空格(ASCII 0x20).这将解释您发布的语法错误:解析器将CREATE TABLE视为单个未知令牌,而不是作为两个单独的已知令牌CREATE和TABLE.
绝对错误的是,您在传递给函数的参数SQLiteDatabase db上调用db.close().您应该只关闭自己打开的数据库,并且以这种方式关闭它会导致异常,尽管这是一个不同的异常.
标签:android,sqlite,syntax-error 来源: https://codeday.me/bug/20191012/1900211.html