更新SQLite for Android上的特定行

时间:2012-01-15 21:03:29

标签: android sqlite

我正在尝试更新使用auto_increment作为主键的特定行。基本上,我在一个活动中初始化表,我想在另一个活动上完成表。所以,我使用更新功能来做到这一点。但是,当我登录以查看受影响的行数时,我得到0。 这是我的代码:

public void updateValue(String updatedValue){
String strFilter = " (" + primaryKey + "== "+ "(SELECT last_insert_rowid())" + ")";
    ContentValues values = new ContentValues();
    values.put(val, updatedValue);
    db = this.getWritableDatabase();

    int rows= db.update(myTable, values, strFilter, null);
    Log.d(LOG_TAG, "The change has affected " + rows
            + " rows.");
    db.close();

}

2 个答案:

答案 0 :(得分:0)

我认为问题在以下几行:

String strFilter = " (" + primaryKey + "== "+ "(SELECT last_insert_rowid())" + ")";

我想,应该按照以下方式编写:

String strFilter = primaryKey + "=" + "(SELECT last_insert_rowid())";

但是如果它返回最后一个插入的行,你应该控制这部分(SELECT last_insert_rowid())的返回。

答案 1 :(得分:0)

使用

"String query = SELECT seq from SQLITE_SEQUENCE WHERE name = \'"+tableName+"\'";

而不是

SELECT last_insert_rowid()