He estado tratando de actualizar una fila específica durante un tiempo, y parece que hay dos formas de hacerlo. Por lo que he leído y probado, puedes usar:
execSQL(String sql)
método
o el:
update(String table, ContentValues values, String whereClause, String[] whereArgs)
método.
(Avíseme si esto es incorrecto, ya que soy nuevo en Android y muy nuevo en SQL).
Así que déjame llegar a mi código real.
myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);
Estoy tratando de lograr esto:
Actualice Field1, Field2 y Field3 donde la clave primaria (_id) es igual a 1.
Eclipse me da una línea roja justo debajo de la palabra "actualizar" y me da esta explicación:
La actualización del método (String, ContentValues, String, String []) en el tipo SQLiteDatabase no es aplicable para los argumentos (String, String, String, null)
Supongo que no estoy asignando los ContentValues correctamente. ¿Alguien puede señalarme en la dirección correcta?
myDB.update(TableName, cv, "_id=?", new String[]{id})
. SQLite completará automáticamente el cuarto parámetro en el "?" en el tercer parámetro, es decir, la cláusula WHERE. Si su tercer parámetro contiene n "?" S, el cuarto parámetro debe ser una Cadena [] de longitud nManera simple:
fuente
execSQL()
para actualizaciones no funcionará. Leer execSQL () con ACTUALIZACIÓN no se actualiza .Al principio, cree un objeto ContentValues :
Luego usa el método de actualización. Tenga en cuenta que el tercer argumento es la cláusula where. Los "?" Es un marcador de posición. Será reemplazado por el cuarto argumento (id)
Esta es la solución más limpia para actualizar una fila específica.
fuente
Este código debería arreglar su ejemplo:
fuente
puedes probar esto ...
fuente
Espero que esto te ayude:
fuente
Intenta este método de actualización en SQLite
fuente
usa este código en tu base de datos `
para actualizar en su sample.java use este código
fuente
Puede intentarlo así:
fuente
si su fila sqlite tiene una identificación única u otro equivalente, puede usar la cláusula where, como esta
fuente
"where _id = 1"
. El cambio también se refleja en mi pregunta también.Para actualizaciones, debe llamar a setTransactionSuccessfull para que los cambios se confirmen de la siguiente manera:
fuente
// Aquí hay un código de muestra simple para actualizar
// Primero declara esto
// inicializa lo siguiente
// código de actualización
// poner su id en lugar del 'signo de interrogación' es una función en mi preferencia compartida.
fuente
fuente
solo intenta de esta manera
fuente
Método para la actualización en SQLite:
fuente
fuente
fuente
solo proporcione rowId y el tipo de datos que se actualizarán en ContentValues.
public void updateStatus (ID de cadena, estado int) {
SQLiteDatabase db = this.getWritableDatabase ();
ContentValues data = new ContentValues ();
data.put ("estado", estado);
db.update (TableName, data, "columnName" + "=" + id, null);
}
fuente
Demostraré con un ejemplo completo
Crea tu base de datos de esta manera
Luego cree una clase para facilitar CRUD -> Crear | Leer | Actualizar | Eliminar
Ahora viene la magia
debe crear su ProductsAdapter que debe devolver un CursorAdapter
Entonces, en una actividad, simplemente llame a la función de esta manera
fuente