我尝试在表格中的行中增加整数键的值。然而,似乎没有任何事情发生。
db.rawQuery("UPDATE table SET key = key + 1 WHERE name=?", new String[] {name});
但是,此代码工作正常(只需将密钥设置为硬编码值):
ContentValues values = new ContentValues();
values.put("key", 2);
db.update("table", values, "name=?", new String[] {name});
还试过'?'而不只是?,但它只是一个运行时错误。
答案 0 :(得分:14)
来自http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html:
public Cursor rawQuery(String sql,String [] selectionArgs)
运行提供的SQL并在结果集上返回Cursor。返回一个Cursor对象,该对象位于第一个条目
之前与:
相比public void execSQL(String sql,Object [] bindArgs)
执行不是查询的单个SQL语句。例如,CREATE TABLE
,DELETE
,INSERT
等
换句话说,返回表的SQL查询将使用rawQuery
运行,而不返回表的SQL查询将使用execSQL
运行。