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

  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.
    0
    1. Merci des infos. C'est corrigé mais l'erreur persiste !
      0
    2. Contributeur
      bonsoir, peux-tu montrer ton code corrigé, et le nouveau message d'erreur?
      0
    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"
                  +")";
      0
    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 ?
      0
    5. private String[] allColumns = {
                  MaBaseSQLite.COL_NOM,
                  MaBaseSQLite.COL_TEMPS,
                  MaBaseSQLite.COL_PERSONA,
                  MaBaseSQLite.COL_INGRA,
                  MaBaseSQLite.COL_DIFF,
                  MaBaseSQLite.COL_DESC
          };
      0