Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Soucis de Base de Données... Aidez-moi !

Sujet résolu
    24 mai 2013 à 17:43:54

    Bonjour à tous,

    J'ai pas mal d'erreurs depuis quelque temps sur mon code, j'aurais aimé connaitre vos avis sur celui, vos suggestions, et j'aimerais aussi savoir pourquoi en ce moment j'ai une erreur qui me dit ma table n'existe plus ! Et je ne sais pas comment la recréer, je suis un peu perdu... HELP ! :(

    public class MainActivity extends Activity implements View.OnClickListener{
    	
    	//DECLARATION DES ELEMENTS VISUEL (XML)
    	ListView vueActivites;
    	GridView vueEmployes;
    	TextView txt;
    	
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            Log.v("STARTING", "OK");
            
            // CONNEXION A LA BASE
            final DAOBase access = new DAOBase(this);
            
        	List<HashMap<String, String>>  liste = new Synchro(access).getListe();
                 
            ListAdapter adapter2 = new SimpleAdapter(this,  
          	      liste, 
          	      android.R.layout.simple_list_item_single_choice,
          	      new String[] {"text1", "text2"}, 
          	      new int[] {android.R.id.text1, android.R.id.text2 });
    
            //vueActivites.setChoiceMode(CHOICE_MODE_SINGLE);
            vueActivites.setAdapter(adapter2);
    public class DAOBase {
    	  // VERSION
    	  protected final static int VERSION = 1;
    	  // Le nom du fichier qui représente la base
    	  protected final static String NOM = "database.db";
    	     
    	  protected SQLiteDatabase mDb = null;
    	  protected BaseSQLite mHandler = null;
    	  
    	  public static final String ACTIVITE_TABLE_NAME = "Activite";
    	  public static final String ACT_ID = "_id";
    	  public static final String ACT_LABEL = "label";
    	  public static final String ACT_DESCR = "description";
    	 
    	  // Creation
    	  public DAOBase(Context pContext) {
    	    this.mHandler = new BaseSQLite(pContext, NOM, null, VERSION);
    	    Log.v("DAOBase", "CREATION BASE");
    	    //this.mHandler.onCreate(this.mDb);
    	  }
    	  
    	  // Ouverture de la BD
    	  public SQLiteDatabase open() {
    	    mDb = mHandler.getWritableDatabase();   
    	    //close();
    	    return mDb;
    	  }
    	  
    	  // Fermeture de la BD
    	  public void close() {
    	    mDb.close();
    	  }
    	  
    	  // Getter BD
    	  public SQLiteDatabase getDb() {
    	    return mDb;
    	  }
    	  
    	  public void ajouter(Activite activite) {
    
    			ContentValues values = new ContentValues();
    			//on lui ajoute une valeur associée à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
    			values.put(ACT_LABEL, activite.getLabel());
    			values.put(ACT_DESCR, activite.getDescription());
    			Log.v("TEST", "ajouter");
    			//on insère l'objet dans la BDD via le ContentValues
    			open();
    			mDb.insert(ACTIVITE_TABLE_NAME, "VIDE", values);
    			close();
    	  }
    	  
    	  public ArrayList<Activite> maListeTest(){
    		// Ouverture Base de donnees
    		ArrayList<Activite> activites = new ArrayList<Activite>();
    		open();
    		//Requete Select
      		String[] projection = {
    			    ACT_LABEL,
    			    ACT_DESCR,
    			    };
    		
    		Cursor c = mDb.query(
    			    ACTIVITE_TABLE_NAME,  // The table to query
    			    projection,                               // The columns to return
    			    null,                                // The columns for the WHERE clause
    			    null,                            // The values for the WHERE clause
    			    null,                                     // don't group the rows
    			    null,                                     // don't filter by row groups
    			    null                                 // The sort order
    			    );
    
    		//Curseur parcours les resultats
    		
    		while (c.moveToNext()) {
    			  String label = c.getString(0);
    			  Activite activite = new Activite(label);
    			  activites.add(activite);
    		}
    		c.close(); // fermeture du curseur
    		close(); // fermeture de la BD
    		return activites;
    		}
    	  
    	  public void RAZ(Context pContext) {
    		  this.mHandler.onUpgrade(mDb, 1, 1);
    	  }
    }
    public class BaseSQLite extends SQLiteOpenHelper {
    	
    	//Attributs de la relation ACTIVITE
    	  public static final String ACTIVITE_TABLE_NAME = "Activite";
    	  public static final String ACT_ID = "_id";
    	  public static final String ACT_LABEL = "label";
    	  public static final String ACT_DESCR = "description";
    	     
    	//Attributs de la relation EMPLOYE
    	  public static final String EMP_ID = "_id";
    	  public static final String EMP_NOM = "nom";
    	  public static final String EMP_PHOTO = "photo";
    	  
    	//Pour la mise à jour nécessaire de la BD via onUpgrade
    	  public static final String ACTIVITE_TABLE_DROP = "DROP TABLE IF EXISTS " + ACTIVITE_TABLE_NAME + ";";
    	  
    	//Creation
    	  public static final String ACTIVITE_TABLE_CREATE =
    	    "CREATE TABLE " + ACTIVITE_TABLE_NAME + " (" +
    	      ACT_ID + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
    	      ACT_LABEL + " TEXT, " +
    	      ACT_DESCR + " TEXT);";
    	 
    	  public BaseSQLite(Context context, String DBname, CursorFactory factory, int version) {
    	    super(context, DBname, factory, version);
    	    Log.v("BaseSQLite", "CREATION BASE");
    	  }
    	  
    	//Execution
    	  @Override
    	  public void onCreate(SQLiteDatabase db) {
    		  db.execSQL(ACTIVITE_TABLE_CREATE);
    		  Log.v("DAOBase", "CREATION TABLE ACTIVITE");
    	  }
    	  
    	//MAJ
    	  @Override
    	  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    	    db.execSQL(ACTIVITE_TABLE_DROP);
    	    onCreate(db);
    	  }
    
    }
    public class Synchro {
    	
    	List<HashMap<String, String>> liste = new ArrayList<HashMap<String, String>>();
    
    	public Synchro(DAOBase access) {
    		
    		Log.v("SYNCHRO", "START");
    		ArrayList<Activite> activites = new ArrayList<Activite>();
            activites = access.maListeTest();
            //vueActivites = (ListView) findViewById(R.id.listeActivites);
            
            // CREATION DE TABACTIVITES
            String[][] tabActivites = new String[activites.size()][2];
            for(int i =0 ; i<activites.size() ; ++i) {
            	tabActivites[i][0] = activites.get(i).getLabel();
            	Log.v("VALEURS", tabActivites[i][0]);
            	tabActivites[i][1] = activites.get(i).getDescription();
            }
             
            // CREATION DE LA LISTE
            HashMap<String, String> element;
            // Parcours d'activites
            for(int i = 0 ; i < tabActivites.length ; i++) {
              // on crée un élément pour la liste
              element = new HashMap<String, String>();
              // text1 = LABEL
              element.put("text1", tabActivites[i][0]);
              // text1 = DESCRIPTION
              element.put("text2", tabActivites[i][1]);
              liste.add(element);
            }
    
    	}
    	
    	public List<HashMap<String, String>> getListe() {
    		Log.v("RETURN LISTE", liste.toString());
    		return liste;
    	}
    	
    	
    }
    



    Merci d'avance pour votre aide!!!


    • Partager sur Facebook
    • Partager sur Twitter
      28 mai 2013 à 17:30:54

      Bonjour,

      Tu peux nous donner ton Log d'erreur.

      • Partager sur Facebook
      • Partager sur Twitter
        28 mai 2013 à 17:49:39

        alikyo a écrit:

        Bonjour,

        Tu peux nous donner ton Log d'erreur.


        Merci, mais mon erreur a disparue en recréant ma base dans le début de mon activité principal avec des requête SQL !
        • Partager sur Facebook
        • Partager sur Twitter

        [Android] Soucis de Base de Données... Aidez-moi !

        × 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