IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Ajouter une nouvelle colonne à Database sans perdre les données


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    ETUDIANT
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : ETUDIANT

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Points : 70
    Points
    70
    Par défaut Ajouter une nouvelle colonne à Database sans perdre les données
    Bonjour ,

    j'ai déjà realiser un programme sous android , maintenant je veux ajouter une colonne dans la table existant,par exemple :

    - une table a deux colonne( nom et adresse ) ancien table .
    - la nouvelle table : nom et adresse et tel (rajouter une colonne tel)

    Donc y as deux modifications :

    1- changement de la version de la Data base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public static final int MYDATABASE_VERSION = 3;//ancien vesrion=2
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
      {	
       if (newVersion > oldVersion) 
       {
    	  db.execSQL("ALTER TABLE " + MYDATABASE_TABLE + " ADD COLUMN " + KEY_TEL + " integer");
       }
      }

    Ça fonctionne très bien (j'ai vérifier ma base de donnée a la partie DDMS et j'ai trouver 3 colonnes)

    Et puis j'ai rajouter une donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clients.insert("vincant",048578979645);
    (Verification database a la partie DDMS --> vincant 048578979645 --> OK )

    Mais le programme bug des que je demande de lire une donnée : par exemple :

    cursorclients.moveToFirst();
    int num;
    num=cursorclients.getInt(2); --> Bug ici ( la valeur 2 c'est la 2 colonne (Tel))

    Pourqoui ce bug ?

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Peux tu nous poster l'erreur en question stp ?

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Bonjour

    Oui tout a l'air bien dans la construction de la base... mais quid de la requête ?
    On ne voit pas les SQL passé pour créer le curseur!

    M'est d'avis, que cette requête ne demande que 2 colonnes (comme cela devrait être le cas, car on ne demande jamais toutes les colonnes sauf cas exceptionnel).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Membre régulier
    Homme Profil pro
    ETUDIANT
    Inscrit en
    Novembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : ETUDIANT

    Informations forums :
    Inscription : Novembre 2012
    Messages : 111
    Points : 70
    Points
    70
    Par défaut rebonjour
    Merci pour vous aide,

    J'ai trouvé la solution :

    de rajouter aussi KEY_TEL in queueAll();


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Cursor queueAll()
     {
      String[] columns = new String[]{KEY_ID, KEY_CONTENT,KEY_TEL};
      Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,null, null, null, null, null);
      return cursor;
     }

    Merci infiniment pour vous et bonne journée a vous

  5. #5
    Membre éclairé Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Points : 703
    Points
    703
    Par défaut
    !!
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

Discussions similaires

  1. [LibreOffice][Tableur] Copier/déplacer une feuille OpenOffice cal sans perdre les liens
    Par yabo84 dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 05/08/2013, 08h08
  2. Réponses: 2
    Dernier message: 24/05/2013, 12h14
  3. ajouter une nouvelle colonne par un SELECT
    Par maysa dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/09/2006, 13h14
  4. Réponses: 2
    Dernier message: 06/07/2006, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo