0

要更新我的 SQLite 数据库(android)中的值,我使用以下方法。该表称为对象,我要更新的字段是 showinfo1,具有特定 id 和级别的特定项目。

public void insertString(int id, int level, String field, String value){

        myDataBase.execSQL("UPDATE OBJECTS SET " + field + "=" + value + " WHERE _ID=" + id + " AND LEVEL =" + level);

    }

我有一个我认为很奇怪的错误。它说有'nosuchcolumn',而实际上有一个..:

android.database.sqlite.SQLiteException: no such column: true: UPDATE OBJECTS set showinfo1=true WHERE _ID=6 AND LEVEL =1

任何想法如何解决这个问题?也许我的查询是错误的?

4

2 回答 2

1

你的查询应该是这样的

public void insertString(int id, int level, String field, String value){

    myDataBase.execSQL("UPDATE OBJECTS SET " + field + "='" + value + "' WHERE _ID=" + id + " AND LEVEL =" + level);

}

您的字符串正在转换为UPDATE OBJECTS SET URFIELD = true ...,它正在搜索名为 的列true,所以它应该是URFIELD = 'true'(同样适用IDLEVEL如果它们是text

于 2012-09-24T14:59:00.217 回答
1

SQLite 没有单独的布尔存储类型。相反,布尔值应存储为整数 0(假)或 1(真)。

于 2012-09-24T14:54:37.567 回答