在sqlite中更改列中的值

Gab*_*lle 13 sqlite android

我需要更新某个表中的列中的值.我试过这个:

 public void updateOneColumn(String TABLE_NAME, String Column, String rowId, String ColumnName, String newValue){
                 String sql = "UPDATE "+TABLE_NAME +" SET " + ColumnName+ " = "+newValue+" WHERE "+Column+ " = "+rowId;
                 db.beginTransaction();
                 SQLiteStatement stmt = db.compileStatement(sql);
                 try{
                     stmt.execute();
                     db.setTransactionSuccessful();
                 }finally{
                     db.endTransaction();
                 }

        }
Run Code Online (Sandbox Code Playgroud)

我这样称呼这个方法:

 db.updateOneColumn("roadmap", "id_roadmap",id,"sys_roadmap_status_mobile_id", "1");
Run Code Online (Sandbox Code Playgroud)

这意味着我要设置的值1sys_roadmap_status_mobile_idid_roadmap = id.

问题是没有任何反应.我的错误在哪里?

War*_*ith 33

简易解决方案

String sql = "UPDATE "+TABLE_NAME +" SET " + ColumnName+ " = '"+newValue+"' WHERE "+Column+ " = "+rowId;
Run Code Online (Sandbox Code Playgroud)

更好的方案:

ContentValues cv = new ContentValues();
cv.put(ColumnName, newValue);
db.update(TABLE_NAME, cv, Column + "= ?", new String[] {rowId});
Run Code Online (Sandbox Code Playgroud)