SQLite Android更新了一个特定的行

时间:2016-06-04 03:09:25

标签: android sqlite content-values

我在尝试更新SQlite中的某行时遇到了问题。

我想更新行" name"与名称1的任何人重命名为bob。 我还想更新row" age"任何人都是5岁。

    ContentValues cv = new ContentValues();
    cv.put("age", "bob"); 
    cv.put("name", "2");
    database.update("tblTest1", cv, "name", null);

    cursor = database.rawQuery("select age,name from tblTest1", null);
    displayAllInCursor(cursor);

当我运行它时,程序的其余部分工作正常。在logcat中显示以下消息:

I / Choreographer:跳过39帧!应用程序可能在其主线程上做了太多工作。

另外,我不确定如何使用ContentValues创建删除。 任何帮助都会很棒。 提前致谢。

2 个答案:

答案 0 :(得分:1)

您只需更新where子句。

 String where = "name ='name1'OR age = 5" ;
    ContentValues cv = new ContentValues();
        cv.put("age", "bob"); 
        cv.put("name", "2");
        database.update("tblTest1", cv, where, null);

        cursor = database.rawQuery("select age,name from tblTest1", null);
        displayAllInCursor(cursor);

答案 1 :(得分:-1)

这样做:

String[] args = new String[]{yourVariableName}; //this is for the condition
database.execSQL("UPDATE " + TABLENAME + " SET colum1Name='" + variable1 + "', column2Name='"+variable2+"' WHERE id=?", args);//replace id for your condition
Toast.makeText(getBaseContext(), "database updated!", Toast.LENGTH_LONG).show();