J'ai une base de données SQLite que je voudrais dans deux applis (une iOS et une Android)
Coté iOS tout se passe très bien, par contre côté Android je n'arrive même pas à exécuter la moindre requête.
J'ai cru comprendre que même en mettant le fichier .db dans le dossier assets, ça ne suffisait pas à inserer le fichier dans le package, du coup j'ai fait un fichier DataBaseHelper.java qui est censé s'en charger
Voici mon code :
DataBaseHelper bdd = new DataBaseHelper(this);
bdd = new DataBaseHelper(this);
try {bdd.createDataBase();} catch (IOException ioe) {throw new Error("Unable to create database");}
try {bdd.openDataBase();}catch(SQLException sqle){throw sqle;}
Cursor result = bdd.getReadableDatabase().query(false, "sujet", new String[] {"lieu"}, null, null, null, null, null, null);
String a = result.getString(0);
textView1.setText("Visite du musée"+a);
sachant que le bug survient à la ligne
Cursor result = bdd.getReadableDatabase().query(false, "sujet", new String[] {"lieu"}, null, null, null, null, null, null); qui donne un sympathique Force closeen gros à la base je voulais compter le nombre de lieux (colonne lieu, de type CHAR(1), représenté par une lettre) dans la table "sujet", ma requête serait donc :
SELECT COUNT(*) FROM (SELECT DISTINCT lieu FROM sujet);Comment faire pour extraire un entier proprement en java avec cette requete ?
Dans l'attente de vos réponses et commentaires, merci
finalement j'ai trouvé
si ça peut en aider d'autres, voici mon code :
DataBaseHelper bdd = new DataBaseHelper(this);
bdd = new DataBaseHelper(this);
try {bdd.createDataBase();} catch (IOException ioe) {throw new Error("Unable to create database");}
try {bdd.openDataBase();}catch(SQLException sqle){throw sqle;}
Cursor mCount= bdd.getReadableDatabase().rawQuery("select count(*) from (select distinct lieu from sujet)", null);
mCount.moveToFirst();
int a= mCount.getInt(0);
mCount.close();
textView1.setText("Visite du musée"+a);
Modifié par Zenos77, 29 October 2012 - 23:53.







Retour en haut







