我在尝试更新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创建删除。 任何帮助都会很棒。 提前致谢。
答案 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();