我正在尝试使用以下方式更新行:
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);
}
我已经看过其他似乎与这个问题类似的答案,但我还没有找到解决我遇到的问题的确定性问题。它似乎与变量有关,但我可能完全错了..
答案 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);