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 :

SQLiteDatabase.query retourne un NullPointerException


Sujet :

Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 72
    Par défaut SQLiteDatabase.query retourne un NullPointerException
    Bonjour,

    Je créé une petite appli Android dans laquelle j'ajoute, modifie, supprime et affiche un agenda personnel.
    L'ajout fonctionne bien mais quand je veux récupérer la liste des agendas précédemment créés, le programme lève une exception NullPointer au niveau de SQLiteDatabase.query
    Avez vous une idée ?
    Voici le code en question :
    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
     
    public List<Agenda> getAllAgenda() {
    		    List<Agenda> agendas = new ArrayList<Agenda>();
    		    Cursor cursor;
     
    		    try {
    		    cursor = bdd.query(TABLE_AGENDA,
    		    		 new String[] {COL_ID, COL_INTITULE, COL_DATE, COL_HEURE}, null, null, null, null, null);
    				    if ( cursor.moveToFirst() ) {
    					    while (!cursor.isAfterLast()) {
    					    	Agenda agenda = cursorToAgenda(cursor);
    					    	agendas.add(agenda);
    					      cursor.moveToNext();
    					    }
    				    }
    				    cursor.close();
    		    } catch (Exception e){
    		    	Log.d("AGENDA DAO", e.toString() );
    		    }
     
    	    return agendas;
    }
    Merci :-)

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 72
    Par défaut
    Pour info, l'insertion fonctionne bien, je fais un Toast en indiquant l'id de l'insertion et celui-ci s'incrémente bien ...

    Cependant, j'ai toujours mon NullPointerException au moment de récupérer tous les Agendas, soit ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Cursor cursor = bdd.query(TABLE_AGENDA,
    		    		 new String[] {COL_ID, COL_INTITULE, COL_DATE, COL_HEURE}, null, null, null, null, null);
    J'ai regardé dans l'API tout me semble correct, TABLE_AGENDA et le String[] sont corrects...
    C'est bizarre non ? Je m'inquiète ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 72
    Par défaut
    Javais pas fait de open sur mon DAO, c'était peut-être ça mais maintenant j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.IllegalStateException: attempt to re-open an already-closed object: android.database.sqlite.SQLiteQuery (mSql = SELECT ID, Intitulé, Date, Heure FROM agenda)
    Et voici le code dans mon activity qui appelle cette méthode:

    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
    public class ListeActivity extends ListActivity {
     
    	private AgendaDAO agendaDAO;  
        private SimpleCursorAdapter dbAdapter;  
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_liste);
            ListView listView = (ListView)findViewById(android.R.id.list);
            agendaDAO = new AgendaDAO(this);
        	agendaDAO.open();	
            try {
            	List<Agenda> agendas = agendaDAO.getAllAgenda();
        		Log.d("NB AGENDA",Integer.toString(agendas.size()));
     
            	ArrayAdapter<Agenda> adapter = new ArrayAdapter<Agenda>(this,
            		android.R.layout.simple_list_item_1, agendas);
        		listView.setAdapter(adapter);
            } catch(Exception e){
            	Log.d("EXCEPTION",e.toString());
            }
            agendaDAO.close();
        }
     
    }

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 72
    Par défaut
    Et pour info puisque vous me demandez tous !! Ce n'est pas dans mon activité principale le même code à l'air de fonctionne dans la principale ...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/05/2012, 16h09
  2. Migration base Oracle 9 vers Oracle 10G - Microsoft Query retourne ORA-01722
    Par coyote90 dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 14/05/2012, 15h54
  3. [PDO] Query retourne des champs vides
    Par ToonToon1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/01/2011, 16h25
  4. chargement image dans un JAR retournant des NullPointerException
    Par Balbuzard dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 30/11/2008, 14h00
  5. [SGBD] [PHP/MySQL Query]Quelle est la taille du tableau retourné?
    Par Jean_Benoit dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 07/10/2005, 19h10

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