2017-05-29 38 views
-1

我有以下几点:列名的SQLite的Android不工作工作室

public static final String COL_4 = "ID"; 

和:

public void onCreate(SQLiteDatabase db) { 
    db.execSQL("create table " + TABLE_NAME + " (LastScore INTEGER, Highscore INTEGER, Title TEXT, ID BOOLEAN)"); 

这工作完全;

但是,如果我改变ID,比方说,“约翰”(在声明和execSQL),我收到以下错误:

android.database.sqlite.SQLiteException: no such column: John (code 1): , while compiling: UPDATE Player_Stats SET LastScore=?,Title=?,John=?,Highscore=? 

任何想法如何的名称这样的变化字符串抛出异常? 谢谢!

编辑:问题不是布尔。如果将其更改为Integer,则会发生同样的问题。与“ID”的作品,不与“约翰”

+0

是否要将列名ID更改为John? –

+0

'约翰' - 这不是一个专栏,只是一个价值。请提供您的绑定声明 – FieryCat

+0

在您的COL_4 =“ID”数据类型是布尔值 –

回答

0

看来我第一次运行它时,数据库是用ID列创建的。因此,我只是晚些时候调用onUpgrade()而不是onCreate(),它期望一个名为ID的列而不是John。我无法做到这一点,但我相信删除数据库并重新开始将解决问题。感谢您的支持!

0

布尔数据类型

有SQLite的没有原生布尔数据类型。 SQLite没有单独的布尔存储类。相反,布尔值被存储为整数0(假)和1(真)。

+0

正确,但当我将其作为整数处理时,情况也是如此。 – Ziad