Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Répétition des données SQLite

    25 février 2020 à 7:27:50

    Bonjour à toutes et à tous. Je développe une application Android et je me heurte à un problème que je n'arrive pas à résoudre depuis quelques jours et j'éspère que quelqu'un ici pourra m'aider. Bon voilà, j'ai récupérer des données d'une base externe MySQL et je les ai insérer dans une base interne SQLite ppour enfin les afficher dans une listView. Mon problème c'est que, à chaque connexion internet les données s'insèrent toujours dans la base même s'il y a deja les mêmes données en question dans la base. Ce que je vous demande c'est de me montrer la voie ou me conseiller un bon tuto à ce sujet pour qu'à chaque connexion internet, seule les données encore non présente dans la base SQLite sont seule à être ajouter dans la base. Merci d'avance pour ceux qui pourront m'apporter leurs aides.

    Voici mon code de création, d'ajout et de listage de ma base SQLite (je suis sous eclipse):

    package SQLite;
    
    import java.util.ArrayList;
    
    import java.util.List;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    import mDataObject.EvenementTamatave;
    import mDataObject.InfosPratiques;
    import mDataObject.NumeroUrgence;
    import mDataObject.PharmacieGarde;
    import mDataObject.Publique;
    
    public class DBHelper extends SQLiteOpenHelper {
    	
    	public static final String DB_NAME= "illaigna.db";
    	public static final String TB_NAME1= "publique";
    	
    	
    	public static final String _ID1= "id1";
    	public static final String NOM_SERVICE_PUB= "nom_service";
    	public static final String TYPE_PAPIER= "type_papier";
    	public static final String DEMARCHE_SUIVRE= "demarche_suivre";
    	
    	
    	
    	public static final int VERSION= 1;
    	
    	String sql1= "CREATE TABLE IF NOT EXISTS "+TB_NAME1+" ("+_ID1+" INTEGER PRIMARY KEY AUTOINCREMENT, "+NOM_SERVICE_PUB+" TEXT, "+TYPE_PAPIER+" TEXT, "+DEMARCHE_SUIVRE+" TEXT)";
    	
    	String upgr1= ("DROP TABLE IF EXISTS" +TB_NAME1);;
    	
    	public DBHelper(Context c) {
    		super(c, DB_NAME, null, VERSION);
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		// TODO Auto-generated method stub
    		db.execSQL(sql1);
    		
    		Log.i("DATABASE", "onCreate invoked");
    
    	}
    
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		// TODO Auto-generated method stub
    		db.execSQL(upgr1);
    		onCreate(db);
    		
    		Log.i("DATABASE", "onUpgrade invoked");
    
    	}
    	
    	public void insertPub(String nom_service, String type_papier, String demarche_suivre) {
    		nom_service= nom_service.replace("'", "''");
    		type_papier= type_papier.replace("'", "''");
    		demarche_suivre= demarche_suivre.replace("'", "''");
    		String ins= "INSERT INTO "+TB_NAME1+" ("+NOM_SERVICE_PUB+", "+TYPE_PAPIER+", "+DEMARCHE_SUIVRE+") VALUES ('"+nom_service+"', '"+type_papier+"', '"+demarche_suivre+"')";
    		this.getWritableDatabase().execSQL(ins);
    		Log.i("DATABASE", "Insert publique invoked");
    	}
    	
    	public ArrayList<Publique> readdatapub(){
    		ArrayList<Publique> publique= new ArrayList<>();
    		String list= "SELECT * FROM "+TB_NAME1+"";
    		Cursor cursor= this.getReadableDatabase().rawQuery(list, null);
    		cursor.moveToFirst();
    		while(!cursor.isAfterLast()) {
    			Publique pub= new Publique(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3));
    			publique.add(pub);
    			cursor.moveToNext();
    		}
    		cursor.close();
    		return publique;
    	}
    }



    • Partager sur Facebook
    • Partager sur Twitter
      27 février 2020 à 12:35:41

      Re-bonjour. Je me permet de remonter un peu le sujet car je suis toujours dans l'impasse et toute l'aide possibles seraient la bienvenue.

      Merci d'avance.

      • Partager sur Facebook
      • Partager sur Twitter

      [Android] Répétition des données SQLite

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown