SQLITE Syntaxe error

Bonjour,
Lors de la compilation j'obtiens l'erreur de syntaxe a cette ligne :
 public List<Objet> getAllComment() {
        List<Objet> objets = new ArrayList<Objet>();
        Cursor cursor = bdd.query(MaBaseSQLite.TABLE, allColumns, null, null, null, null, null); //ICI
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            Objet objet = cursorToComment(cursor);
            objets.add(objet);
            cursor.moveToNext();
        }
        cursor.close();
        return objets;
    }


Je crois que le problème viens lors de la création de ma table :
private static final String CREATE_BDD = "CREATE TABLE " + TABLE + "("
            + COL_NOM + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COL_TEMPS + " TEXT NOT NULL, "
            + COL_PERSONA + " TEXT NOT NULL, "
            + COL_INGRA + " TEXT NOT NULL, "
            + COL_DIFF + " TEXT NOT NULL, "
            + COL_DESC + " TEXT NOT NULL"
            +")";


Caused by: android.database.sqlite.SQLiteException: near "preparation": syntax error (code 1): , while compiling: SELECT Titre, Temps de preparation, Nombre de personnes, Ingrediants, Difficulté, Description FROM Recette

COL_TEMPS est temps de préparation. Mais je ne vois ce qui cloche ! :/

Merci de vos lumières

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour

    Deja.. il faut eviter de mettre des espaces et des caractères accentués pour le nom des champs et des tables.
    1. Merci des infos. C'est corrigé mais l'erreur persiste !
    2. Contributeur
      bonsoir, peux-tu montrer ton code corrigé, et le nouveau message d'erreur?
    3. Caused by: android.database.sqlite.SQLiteException: no such column: TempsDePreparation (code 1): , while compiling: SELECT Titre, TempsDePreparation, NombreDePersonnes, Ingrediants, Difficulte, Description FROM Recette

      Désolé, j'ai répondu trop vite ! L'erreur a bien changé. Mais je ne comprend toujours pas
      static final String TABLE = "Recette";
          static final String COL_NOM = "Titre";
          static final String COL_TEMPS = "TempsDePreparation";
          static final String COL_PERSONA = "NombreDePersonnes";
          static final String COL_INGRA = "Ingrediants";
          static final String COL_DIFF= "Difficulte";
          static final String COL_DESC = "Description";
      
          private static final String CREATE_BDD = "CREATE TABLE " + TABLE + "("
                  + COL_NOM + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                  + COL_TEMPS + " TEXT NOT NULL, "
                  + COL_PERSONA + " TEXT NOT NULL, "
                  + COL_INGRA + " TEXT NOT NULL, "
                  + COL_DIFF + " TEXT NOT NULL, "
                  + COL_DESC + " TEXT NOT NULL"
                  +")";
    4. Modérateur
      @louisgautierSi tu as renommé tes colonnes... le message ne peut pas être exactement le même. ...
      Montre ton code modifié. ..
      Et aussi... que contient ta variable allColumns ?
    5. private String[] allColumns = {
                  MaBaseSQLite.COL_NOM,
                  MaBaseSQLite.COL_TEMPS,
                  MaBaseSQLite.COL_PERSONA,
                  MaBaseSQLite.COL_INGRA,
                  MaBaseSQLite.COL_DIFF,
                  MaBaseSQLite.COL_DESC
          };