J'ai une application Android qui doit vérifier s'il y a déjà un enregistrement dans la base de données, et sinon, traiter certaines choses et finalement l'insérer, et simplement lire les données de la base de données si les données existent. J'utilise une sous-classe de SQLiteOpenHelper pour créer et obtenir une instance réinscriptible de SQLiteDatabase, qui, je pensais, s'occupait automatiquement de créer la table si elle n'existait pas déjà (puisque le code pour le faire est dans le onCreate (... ) méthode).
Cependant, lorsque la table n'existe PAS encore et que la première méthode exécutée sur l'objet SQLiteDatabase que j'ai est un appel à la requête (...), mon logcat affiche une erreur de "I / Database (26434): sqlite a retourné: erreur code = 1, msg = aucune table de ce type: appdata ", et bien sûr, la table appdata n'est pas en cours de création.
Des idées sur pourquoi?
Je recherche soit une méthode pour tester si la table existe (car si ce n'est pas le cas, les données ne sont certainement pas dedans, et je n'ai pas besoin de la lire avant d'y écrire, ce qui semble créer la table correctement), ou un moyen de s'assurer qu'il est créé, et est juste vide, à temps pour ce premier appel à la requête (...)
EDIT
Cela a été posté après les deux réponses ci-dessous:
Je pense que j'ai peut-être trouvé le problème. Pour une raison quelconque, j'ai décidé qu'un SQLiteOpenHelper différent était censé être créé pour chaque table, même si les deux accèdent au même fichier de base de données. Je pense que refactoriser ce code pour n'utiliser qu'un seul OpenHelper, et créer les deux tables à l'intérieur de onCreate peut fonctionner mieux ...