La table contient 4 colonnes: rowID, Word, defintition, group_id
Je veux changer le mot et la définition d'une rangée donnée. Voici donc mon code (Word est un objet où sont stockés le mot, la définition, l'id et le group_id)
ContentValues values = new ContentValues();
values.put(KEY_Word, Word.getWord());
values.put(KEY_DEFINITION, Word.getDefinition());
db.update(TABLE_WORDS, values, KEY_ID, new String [] {String.valueOf(Word.getID())});
Quelqu'un peut-il me dire pourquoi cela crée uniquement une nouvelle ligne au lieu de changer la ligne sous un ID donné?
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_DATE, contact.getDate());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
String id = "1";
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NOTIFICATION_STATUS,"canceled");
db.update(TABLE_NOTIFICATION, values,COLUMN_NOTIFICATION_ID + " = ? ",new String[]{ String.valueOf(id) });
cela fonctionnera comme une déclaration préparée. Ce morceau de code a fonctionné dans mon cas .. Merci
cela fonctionne pour moi, alors que db.rawquery ne fonctionnait pas.
requête de sortie
String qu="UPDATE "+ DATABASE_TABLE_DATA + " SET "+isbookmark+" = "+status+" WHERE id = "+uid+";";
db.execSQL(qu);
output query :
UPDATE tabel_data SET `isbookmark` = 1 WHERE id = 2720271;
@Digvesh a la bonne idée, mais à cause de cette limitation , la conversion d'un entier en une chaîne à utiliser comme argument de sélection ne fonctionnera pas correctement. Au lieu de cela, faites ceci:
// assume: SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_Word, Word.getWord());
values.put(KEY_DEFINITION, Word.getDefinition());
int rowsUpdated = db.update(TABLE_WORDS, values, KEY_ID + "=" + Word.getID(), null);
Utilisez LIKE au lieu de l'opérateur =.
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_DATE, contact.getDate());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " LIKE ?",
new String[] { String.valueOf(contact.getID()) });
utilise ce lien il vous aidera à mettre à jour la requête dans la base de données SQLite