增加android/sqlite数据库中记录的值

nip*_*p3o 18 sqlite android

我尝试在表中的行中增加整数键的值.然而,似乎没有任何事情发生.

db.rawQuery("UPDATE table SET key = key + 1 WHERE name=?", new String[] {name});
Run Code Online (Sandbox Code Playgroud)

但是,此代码工作正常(只需将密钥设置为硬编码值):

    ContentValues values = new ContentValues();
    values.put("key", 2);
    db.update("table", values, "name=?", new String[] {name});
Run Code Online (Sandbox Code Playgroud)

还试过'?' 而不只是?,但它只是导致运行时错误.

MPe*_*ier 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.