在Android中,为什么SQLite数据库不会更新?

时间:2011-11-12 12:10:21

标签: java android sqlite

我正在尝试使用以下方式更新行:

myDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + mName, null);

但是我收到以下错误:

错误/数据库(282):使用UPDATE peopleTable SET persons_name =?更新persons_name = Bob时出错人员名称=鲍勃

我使用以下代码尝试更新:

public void updateEntry(String mName) throws SQLException {

    ContentValues cvUpdate = new ContentValues();
    cvUpdate.put(KEY_NAME, mName);
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + mName, null);

}

我已经看过其他似乎与这个问题类似的答案,但我还没有找到解决我遇到的问题的确定性问题。它似乎与变量有关,但我可能完全错了..

2 个答案:

答案 0 :(得分:5)

您没有将字符串括在引号中。你最好做这样的事情:

ourDatabase.update(DATEABASE_TABLE, cvUpdate, KEY_NAME + "= ?", new String[]{mName});

当你使用上面的代码时,如果类型是字符串,它会自动将参数括在单引号中。

答案 1 :(得分:4)

“persons_name = Bob”应该是“persons_name ='Bob'”,所以请尝试:

ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "='" + mName + "'", null);