Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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?

  • Android SQLite Facilidad de reversión de transacciones?
  • Ciclo de vida de la base de datos Sqlite? ¿Se elimina cuando se cierra la aplicación?
  • Actualización de Android SQLite sin perder datos
  • ¿Cómo puedo almacenar un arraylist de objetos personalizados?
  • Cómo utilizar SQLiteDatabase.CursorFactory
  • Obtener actualizaciones de contar las filas de SQLite en Android mediante una consulta en bruto?
  • ¿Cuál es el uso de BaseColumns en Android
  • Cómo obtener el tamaño de la base de datos sqlite actual o el tamaño del paquete en Android?
  • 2 Solutions collect form web for “Cambiar un valor en una columna en sqlite”

    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; } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.