jejefull Posté(e) 8 mars 2012 Share Posté(e) 8 mars 2012 Bonjour, J'ai une erreur: 03-08 08:46:24.156: E/Database(197): android.database.sqlite.SQLiteException: table Program has no column named exercice: , while compiling: INSERT INTO Program(exercice, duree) VALUES(?, ?); Alors que je crée bien une table Program avec une colonne exercice et une duree. Je vous joint mon code pouvez vous m'aider package sdz.home_training; import java.util.ArrayList; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { /** * Nom de la DB (nom du fichier SQLite). */ private static String DATABASE_NAME = "accesdbtests.db"; /** * Numéro de version de la DB. * Si ce numéro change, la fonction onUpgrade est exécutée * pour effacer le contenu de la DB et recréer la nouvelle * version du schéma. */ private static final int DATABASE_VERSION = 1; /** * Lien vers la session DB. */ private SQLiteDatabase db; /** * Nom de la table de la BD (oui une seule table). * Il semblerait que la taille du nom soit limitée??? */ private static final String TABLE_PROGRAMMES = "Program"; /** * Script SQL de création de la table Programmes. */ private static final String COLONNE_ID = "_id"; private static final String COLONNE_EXO = "exercice"; private static final int COLONNE_EXO_ID = 1; private static final String COLONNE_DUREE = "duree"; private static final int COLONNE_DUREE_ID = 2; private static final String REQUETTE_CREATION_BD = "create table " + TABLE_PROGRAMMES + "(" + COLONNE_ID + "techkey integer PRIMARY KEY AUTOINCREMENT," + COLONNE_EXO + "text not null, " + COLONNE_DUREE + "text not null" + ")"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); db = getWritableDatabase(); } /** * Exécuté si la DB n'existe pas. */ @Override public void onCreate(SQLiteDatabase db) { db.execSQL(REQUETTE_CREATION_BD); } /** * Exécuté chaque fois que le numéro de version de DB change. */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE " + TABLE_PROGRAMMES + ";"); onCreate(db); } /** * Insère un exercice dans la DB sur base du POJO Personne. */ public long insertExo(Effort effort) { ContentValues exoToInsert = new ContentValues(); exoToInsert.put(COLONNE_EXO, effort.getExercice()); exoToInsert.put(COLONNE_DUREE, effort.getDuree()); return db.insert(TABLE_PROGRAMMES, null, exoToInsert); } /** * Charge le contenu de la table Programmes * et retourne ce contenu sous la forme d'une liste de NOM + " " + PRENOM; */ /* private Effort cursorToEffort(Cursor c) { // Si la requette ne renvoie pas de resultat. if (c.getCount() == 0) return null; Effort retEffort = new Effort(); // Extraction des valeurs depuis le curseur. retEffort.setId(c.getInt(COLONNE_ID_ID)); retEffort.setExercice(c.getString(COLONNE_EXO_ID)); retEffort.setDuree(c.getInt(COLONNE_DUREE_ID)); //ferme le curseur pour liberer les recssources c.close(); return retEffort; } private ArrayList<Effort> cursorToEfforts(Cursor c) { //Si la requette ne renvoie pas de resultat if (c.getCount() == 0) return new ArrayList<Effort>(0); ArrayList<Effort> retEfforts = new ArrayList<Effort>(c.getCount()); c.moveToFirst(); do { Effort effort = new Effort(); effort.setId(c.getInt(COLONNE_ID_ID)); effort.setExercice(c.getString(COLONNE_EXO_ID)); effort.setDuree(c.getInt(COLONNE_DUREE_ID)); retEfforts.add(effort); } while (c.moveToNext()); //Ferme le curseur pour liberer les ressources c.close(); return retEfforts; } */ public ArrayList<String> getprogramme() { ArrayList<String> output = new ArrayList<String>(); String[] colonnesARecup = new String[] { COLONNE_EXO, COLONNE_DUREE }; Cursor cursorResults = db.query(TABLE_PROGRAMMES, colonnesARecup, null, null, null,null, "exercice asc, duree asc", null); if (null != cursorResults) { if (cursorResults.moveToFirst()) { do { String exerciceduree = cursorResults.getString(COLONNE_EXO_ID) + " " + cursorResults.getString(COLONNE_DUREE_ID); output.add(exerciceduree); } while (cursorResults.moveToNext()); } // end§if } return output; } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jejefull Posté(e) 11 mars 2012 Auteur Share Posté(e) 11 mars 2012 Bon ba je croit qu'il n'y a pas d'utilisateur de sqlite capable de m'aider. Mais si quelqu’un a une idée je suis toujours preneur. Voila merci d'avance Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 11 mars 2012 Share Posté(e) 11 mars 2012 Ton erreur est dans la création de ta table : tu as oublié les espaces entre les noms des colonnes et les types.... du coup ta colonne exercice se nomme en fait exercicetext....ajoute des espace avant techkey et les deux texts présents après colonne_exo et colonne_duree private static final String REQUETTE_CREATION_BD = "create table " + TABLE_PROGRAMMES + "(" + COLONNE_ID + "techkey integer PRIMARY KEY AUTOINCREMENT," + COLONNE_EXO + "text not null, " + COLONNE_DUREE + "text not null" + ")"; Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jejefull Posté(e) 15 mars 2012 Auteur Share Posté(e) 15 mars 2012 D'accord merci je test ca Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.