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 :

INSERT INTO DATABASE


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 43
    Par défaut INSERT INTO DATABASE
    Bonjour,
    je voulais inserer une colonne dans une table d'une base sqlite sous android:
    // creation de la table Projet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     private static final String TABLE_PROJET = "table_projet";
        private static final String COL_IDPROJET = "IDP";
        private static final String COL_NOM_PROJET = "nom_projet";
        private static final String COL_DATED_PROJET = "dated";
        private static final String COL_DATEF_PROJET = "datef";
     
     
     
     
        private static final String CREATE_PROJET = "CREATE TABLE " + TABLE_PROJET + "("
                + COL_IDPROJET + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM_PROJET + " TEXT NOT NULL, "
                + COL_DATED_PROJET + " INTEGER NOT NULL, " + COL_DATEF_PROJET + " INTEGER NOT NULL );";
    Ma classe qui gère l’interaction avec la BD:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    public class ProjetDB {
        private static final int VERSION_BDD = 3;
        private static final String NOM_BDD = "projet.db";
     
        private static final String TABLE_PROJET = "table_projet";
        private static final String COL_IDPROJET = "IDP";
        private static final int NUM_COL_ID =0;
        private static final String COL_DATED_PROJET = "dated";
        private static final int NUM_COL_DATED =1;
        private static final String COL_DATEF_PROJET = "datef";
        private static final int NUM_COL_DATEF =2;
        private static final String COL_NOM_PROJET = "nom_projet";
        private static final int NUM_COL_NOMP =2;
     
     
        private SQLiteDatabase Pr_bd;
     
        private DataBaseClasse maBaseProjet;
     
        public ProjetDB(Context context){
            //On crée la BDD et sa table
            maBaseProjet = new DataBaseClasse(context, NOM_BDD, null, VERSION_BDD);
        }
     
        public void open(){
            //on ouvre la BDD en écriture
            Pr_bd = maBaseProjet.getWritableDatabase();
        }
     
        public void close(){
            //on ferme l'accès à la BDD
            Pr_bd.close();
        }
     
        public SQLiteDatabase getBDD(){
            return   Pr_bd;
        }
     
        public long insertprojet( MesProjets projet){
     
            //Création d'un ContentValues (fonctionne comme une HashMap)
            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(COL_NOM_PROJET, MesProjets.getNomP());
            values.put(COL_DATED_PROJET, MesProjets.getDateD());
            values.put(COL_DATEF_PROJET, MesProjets.getDateF());
            //on insère l'objet dans la BDD via le ContentValues
            return Pr_bd.insert(TABLE_PROJET, null, values);
        }
     
        public int updateprojet(int id, MesProjets projet){
            //La mise à jour d'une note dans la BDD fonctionne plus ou moins comme une insertion
            //il faut simplement préciser quel note on doit mettre à jour grâce à l'ID
            ContentValues values = new ContentValues();
            values.put(COL_NOM_PROJET, MesProjets.getNomP());
            values.put(COL_DATED_PROJET, MesProjets.getDateD());
            values.put(COL_DATEF_PROJET, MesProjets.getDateF());
            return Pr_bd.update(TABLE_PROJET, values, COL_IDPROJET + " = " +id, null);
        }
     
        public int removeNoteWithID(int id){
            //Suppression d'un livre de la BDD grâce à l'ID
            return Pr_bd.delete(TABLE_PROJET, COL_IDPROJET + " = " +id, null);
        }
     
        public MesProjets getprojetWithNom(String nom){
            //Récupère dans un Cursor les valeurs correspondant à un projet contenu dans la BDD (ici on sélectionne la note grâce à son titre)
            Cursor c = Pr_bd.query(TABLE_PROJET, new String[] {COL_IDPROJET, COL_DATED_PROJET, COL_DATEF_PROJET, COL_NOM_PROJET, }, COL_NOM_PROJET + " LIKE \"" + nom +"\"", null, null, null, null);
            return cursorToLivre(c);
        }
        public MesProjets getprojetWithDateD(int dated){
            //Récupère dans un Cursor les valeurs correspondant à un projet contenu dans la BDD (ici on sélectionne la note grâce à son titre)
            Cursor c = Pr_bd.query(TABLE_PROJET, new String[] {COL_IDPROJET, COL_DATED_PROJET, COL_DATEF_PROJET, COL_NOM_PROJET, }, COL_DATED_PROJET + " LIKE \"" + dated +"\"", null, null, null, null);
            return cursorToLivre(c);
        }
        public MesProjets getprojetWithDateF(int datef){
            //Récupère dans un Cursor les valeurs correspondant à un projet contenu dans la BDD (ici on sélectionne la note grâce à son titre)
            Cursor c = Pr_bd.query(TABLE_PROJET, new String[] {COL_IDPROJET, COL_DATED_PROJET, COL_DATEF_PROJET, COL_NOM_PROJET, }, COL_DATEF_PROJET + " LIKE \"" + datef +"\"", null, null, null, null);
            return cursorToLivre(c);
        }
     //Cette méthode permet de convertir un cursor en un projet
        private MesProjets cursorToLivre(Cursor c){
            //si aucun élément n'a été retourné dans la requête, on renvoie null
            if (c.getCount() == 0)
                return null;
     
            //Sinon on se place sur le premier élément
            c.moveToFirst();
            //On créé un livre
            MesProjets mprojet = new MesProjets();
            //on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
            Note.setId(c.getInt(NUM_COL_ID));
            MesProjets.setNomP(c.getString(NUM_COL_NOMP));
            MesProjets.setDateD(c.getInt(NUM_COL_DATED));
            MesProjets.setDateF(c.getInt(NUM_COL_DATEF));
     
            //On ferme le cursor
            c.close();
     
            //On retourne le livre
            return mprojet;
        }
    }
    Main activity:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    public class MainProjet extends Activity {
        private static final String TAG = "";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.projet_activity);
            //Création d'une instance de ma classe NoteDB
            ProjetDB maprojetDB = new ProjetDB(this);
     
            //Création d'une note
            MesProjets pr = new MesProjets("titre", 2015, 2016,1);
     
            //On ouvre la base de données pour écrire dedans
            maprojetDB.open();
            //On insère la note que l'on vient de créer
            maprojetDB.insertprojet(pr);
            String log= "success";
            Log.d(TAG, log);
     
            //Pour vérifier que l'on a bien créé notre note dans la BDD
            //on extrait la note  de la BDD grâce au titre du livre que l'on a créé précédemment
            MesProjets projetFromBdd = maprojetDB.getprojetWithNom(pr.getNomP());
            if(projetFromBdd != null){
                //On affiche les infos du note dans un Toast
                Toast.makeText(this, projetFromBdd.toString(), Toast.LENGTH_LONG).show();
                projetFromBdd.setNomP("J'ai modifié le nom du projet");
                //Puis on met à jour la BDD
                maprojetDB.updateprojet(projetFromBdd.getId(), projetFromBdd);
            }
     
            //On extrait la note de la BDD grâce au nouveau titre
            projetFromBdd = maprojetDB.getprojetWithNom("J'ai modifié le nom du projet");
            //S'il existe une note possédant ce titre dans la BDD
            if(projetFromBdd != null){
                //On affiche les nouvelles informations du note  pour vérifier que le titre du livre a bien été mis à jour
                Toast.makeText(this, projetFromBdd.toString(), Toast.LENGTH_LONG).show();
                //on supprime la note de la BDD grâce à son ID
                maprojetDB.removeNoteWithID(projetFromBdd.getId());
            }
     
            //On essaye d'extraire de nouveau la note de la BDD toujours grâce à son nouveau titre
            projetFromBdd = maprojetDB.getprojetWithNom("J'ai modifié le nom du projete");
            //Si aucun livre n'est retourné
            if(projetFromBdd == null){
                //On affiche un message indiquant que la note n'existe pas dans la BDD
                Toast.makeText(this, "Ce projet n'existe pas dans la BDD", Toast.LENGTH_LONG).show();
            }
            //Si la note  existe (mais normalement il ne devrait pas)
            else{
                //on affiche un message indiquant que la note existe dans la BDD
                Toast.makeText(this, "Ce projet existe dans la BDD", Toast.LENGTH_LONG).show();
            }
     
            maprojetDB.close();
        }
     
            }
    lorsque j'execute ce programme l'emulateur m'affiche: NomPackage.MesProjets@41075920 dans un taost, puis Ce projet n'existe pas dans la BDD.
    aussi dans le logcat il m'apparait le suivant:

    08-02 09:38:53.666 551-551/formationrs.rrapp D/dalvikvm﹕ Not late-enabling CheckJNI (already on)
    08-02 09:38:54.896 551-557/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
    08-02 09:38:55.006 551-557/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
    08-02 09:38:55.376 551-551/formationrs.rrapp D/﹕ success
    08-02 09:38:55.406 551-557/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
    08-02 09:38:55.416 551-557/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
    08-02 09:38:55.806 551-551/formationrs.rrapp D/gralloc_goldfish﹕ Emulator without GPU emulation detected.
    08-02 09:39:10.706 583-589/formationrs.rrapp I/dalvikvm﹕ threadid=3: reacting to signal 3
    08-02 09:39:10.846 583-589/formationrs.rrapp I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'

    priere de m'indiquer l'erreur SVP

  2. #2
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Ben il n'y a pas d'erreur dans le logcat ??? Oo

    Et il y a bien un truc lu puisque tu l'affiche ? (par contre, comme y a pas de fonction toString dans l'objet, Java affiche juste sa zone mémoire et son type).

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 43
    Par défaut
    Merci Beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insert into database Ms access from datagridview
    Par mark. dans le forum Accès aux données
    Réponses: 0
    Dernier message: 18/06/2014, 16h24
  2. [MySQL] Insert Values of <td> into database
    Par ali9090 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 08/05/2014, 15h33
  3. [ODI (ETL)]Developping a plug-in or insert into database ?
    Par Manu300886 dans le forum Qualimétrie
    Réponses: 0
    Dernier message: 21/02/2012, 14h19
  4. insert data into database from selectManyListbox
    Par w_fatima dans le forum NetBeans
    Réponses: 0
    Dernier message: 04/07/2011, 18h32
  5. "Insert into" database Oracle
    Par Sabine25 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 21/08/2007, 17h38

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