微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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().您应该只关闭自己打开的数据库,并且以这种方式关闭它会导致异常,尽管这是一个不同的异常.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐