j'ai app contient la base de données, j'ai créé de nombreuses tables et insérer des données wihtout problème mais quand je mettre à jour les données, les données ne sont mis à jour sans aucun problème apparais dans le journalmise à jour de SQLite ne fonctionne pas
le code: dans le classe DB étend SqliteOpenHelper i ai onCreate que le code suivant
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table table1(id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT ,source TEXT ,isFav INTEGER)");
db.execSQL("create table table2(id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT,source TEXT ,isFav INTEGER)");
db.execSQL("create table table3(id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT,source TEXT, isFav INTEGER)");
db.execSQL("create table fav (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT ,detail TEXT,source TEXT ,isFav INTEGER)");
}
également, le code de la méthode de mise à jour:
public int updateData(String tableName,Long id, int fav) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("isFav",fav);
String myid= String.valueOf(id);
Log.w("myApp", myid+ " fav = "+fav);
int i = database.update(tableName, contentValues, "ID=?", new String[]{myid});
if (i > 0)
return 1;
else return 0;
}
i ai une autre classe qui est listAdapter e xtends ArrayAdapter Je veux mettre à jour à partir de cette classe. getView Contient onClickListener quand cliquez sur le bouton, il devrait être mise à jour :
int a=db.updateData(sh.getString("listType","table1"),arrayList.get(position).getId(),1);
je me suis assuré de nom de la table (sh.getString ("listType", "table1")), il a livré problème withot .. ce que le problème dans le code ci-dessus .. s'il vous plaît aidez-moi
Avez-vous fait que vous passez l'ID correct en utilisant la méthode 'getId()'? Aussi, je pense que sqlite est insensible à la casse, mais remplacez simplement "ID" par "id" juste pour tester. –
oui je me suis assuré de getId() –
êtes-vous 100% sûr que c'est l'id CORRECT? Je suggérerais de faire 'Cursor csr = database.query (nomTable, null," où ID =? ", New String [] {myid}, null, null, null, null);' suivi de quelque chose comme 'if (csr .getCount() <1) {Log.d ("DBUPDATE", "Impossible de mettre à jour id =" + Integer.toString (fav) + "n'existe pas.");} ' – MikeT