列名在 SQLite Android Studio 中不起作用
Column name not working in SQLite Android Studio
我有以下内容:
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 更改为 "John"(在声明和 execSQL 中),我会收到以下错误:
android.database.sqlite.SQLiteException: no such column: John (code 1): , while compiling: UPDATE Player_Stats SET LastScore=?,Title=?,John=?,Highscore=?
知道这样的字符串名称更改是如何抛出异常的吗?
谢谢!
编辑:问题不在于布尔值。如果我将其更改为 Integer,也会出现同样的问题。适用于 "ID",不适用于 "John"
布尔数据类型
SQLite 没有原生布尔数据类型。 SQLite 没有单独的布尔存储 class。相反,布尔值存储为整数 0(假)和 1(真)。
似乎当我第一次 运行 它时,数据库是用 ID 列创建的。因此,我稍后只调用 onUpgrade() 而不是 onCreate(),它需要一个名为 ID 而不是 John 的列。我无法做到这一点,但我相信删除数据库并重新开始将解决问题。感谢支持!
我有以下内容:
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 更改为 "John"(在声明和 execSQL 中),我会收到以下错误:
android.database.sqlite.SQLiteException: no such column: John (code 1): , while compiling: UPDATE Player_Stats SET LastScore=?,Title=?,John=?,Highscore=?
知道这样的字符串名称更改是如何抛出异常的吗? 谢谢!
编辑:问题不在于布尔值。如果我将其更改为 Integer,也会出现同样的问题。适用于 "ID",不适用于 "John"
布尔数据类型
SQLite 没有原生布尔数据类型。 SQLite 没有单独的布尔存储 class。相反,布尔值存储为整数 0(假)和 1(真)。
似乎当我第一次 运行 它时,数据库是用 ID 列创建的。因此,我稍后只调用 onUpgrade() 而不是 onCreate(),它需要一个名为 ID 而不是 John 的列。我无法做到这一点,但我相信删除数据库并重新开始将解决问题。感谢支持!