Cambiar un valor en una columna en sqlite

Necesito actualizar un valor en una columna de una determinada tabla. He intentado esto:

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(); } } 

Y llamo a este método como este:

  db.updateOneColumn("roadmap", "id_roadmap",id,"sys_roadmap_status_mobile_id", "1"); 

Lo que significa que quiero establecer el valor 1 en la columna sys_roadmap_status_mobile_id cuando id_roadmap = id.

El problema es que no pasa nada. ¿Dónde está mi error?

Solución fácil:

 String sql = "UPDATE "+TABLE_NAME +" SET " + ColumnName+ " = '"+newValue+"' WHERE "+Column+ " = "+rowId; 

Mejor solución:

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

La siguiente solución funciona para mí para actualizar valores de una sola fila:

 public long fileHasBeenDownloaded(String fileName) { SQLiteDatabase db = this.getWritableDatabase(); long id = 0; try { ContentValues cv = new ContentValues(); cv.put(IFD_ISDOWNLOADED, 1); // The columns for the WHERE clause String selection = (IFD_FILENAME + " = ?"); // The values for the WHERE clause String[] selectionArgs = {String.valueOf(InhalerFileDownload.fileName)}; id = db.update(TABLE_INHALER_FILE_DOWNLOAD, cv, selection, selectionArgs); } catch (Exception e) { e.printStackTrace(); } return id; } 
  • Android.database.sqlite.SQLiteCantOpenDatabaseException: error desconocido (código 14): No se pudo abrir el problema de la base de datos
  • Androide. Excepción de SQLite: no existe ninguna columna _id
  • Android: transacciones SQLite al usar ContentResolver
  • Android sqlite CREATE TABLE SI NO EXISTE
  • ¿Rellenar la base de datos de Android desde el archivo CSV?
  • Almacenamiento de datos grandes local o en línea para la aplicación de Android?
  • Consulta de mejores prácticas de SQLite para Android
  • Error al abrir la base de datos / Error al cambiar la configuración regional de (base de datos) a 'en_US'
  • Modo offline de la aplicación android, sincronización local de la base de datos sqlite con la base de datos distante
  • Extraño SQLiteException no en todos los dispositivos
  • Mal funcionamiento al eliminar de la tabla de base de datos Sqlite (comportamiento extraordinario de relación)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.