-1

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

我想用 name1 的任何人更新行“name”并将其重命名为 bob。我还想与任何 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 创建删除。任何帮助都会很棒。先谢谢了。

4

2 回答 2

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);
于 2016-06-04T03:34:42.587 回答
-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();
于 2016-06-04T03:25:51.427 回答