Bonjour,
je tourne en rond depuis pas mal de jour, je voudrais afficher les données d'une base sqlite, visiblement je n'ai pas d'erreur mais à l’exécution du programme j'ai ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
03-09 19:16:15.994 21113-21113/ppe4.velib E/SQLiteDatabase: Error inserting capaciteS=20 presenceborneS=non situationS=reparation etatCs=panne nomS=victoire
                                                            android.database.sqlite.SQLiteException: table station has no column named etatCs (code 1): , while compiling: INSERT INTO station(capaciteS,presenceborneS,situationS,etatCs,nomS) VALUES (?,?,?,?,?)
                                                            #################################################################
                                                            Error Code : 1 (SQLITE_ERROR)
                                                            Caused By : SQL(query) error or missing database.
                                                            	(table station has no column named etatCs (code 1): , while compiling: INSERT INTO station(capaciteS,presenceborneS,situationS,etatCs,nomS) VALUES (?,?,?,?,?))
                                                            #################################################################
                                                                at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
                                                                at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1000)
                                                                at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:565)
                                                                at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
                                                                at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
                                                                at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
                                                                at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1633)
                                                                at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1505)
                                                                at ppe4.velib.Models.StationDAO.addStation(StationDAO.java:68)
                                                                at ppe4.velib.Activities.StationActivity.onCreate(StationActivity.java:28)
                                                                at android.app.Activity.performCreate(Activity.java:6904)
                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
                                                                at android.app.ActivityThread.access$1100(ActivityThread.java:229)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:148)
                                                                at android.app.ActivityThread.main(ActivityThread.java:7331)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
03-09 19:16:15.994 21113-21113/ppe4.velib E/AndroidRuntime: FATAL EXCEPTION: main
                                                            Process: ppe4.velib, PID: 21113
                                                            java.lang.RuntimeException: Unable to start activity ComponentInfo{ppe4.velib/ppe4.velib.Activities.StationActivity}: android.database.sqlite.SQLiteException: no such column: etatCs (code 1): , while compiling: UPDATE station SET capaciteS=?,presenceborneS=?,situationS=?,etatCs=?,nomS=? WHERE numS = ?
                                                            #################################################################
                                                            Error Code : 1 (SQLITE_ERROR)
                                                            Caused By : SQL(query) error or missing database.
                                                            	(no such column: etatCs (code 1): , while compiling: UPDATE station SET capaciteS=?,presenceborneS=?,situationS=?,etatCs=?,nomS=? WHERE numS = ?)
                                                            #################################################################
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319)
                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
                                                                at android.app.ActivityThread.access$1100(ActivityThread.java:229)
                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
                                                                at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                at android.os.Looper.loop(Looper.java:148)
                                                                at android.app.ActivityThread.main(ActivityThread.java:7331)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
                                                             Caused by: android.database.sqlite.SQLiteException: no such column: etatCs (code 1): , while compiling: UPDATE station SET capaciteS=?,presenceborneS=?,situationS=?,etatCs=?,nomS=? WHERE numS = ?
                                                            #################################################################
                                                            Error Code : 1 (SQLITE_ERROR)
                                                            Caused By : SQL(query) error or missing database.
                                                            	(no such column: etatCs (code 1): , while compiling: UPDATE station SET capaciteS=?,presenceborneS=?,situationS=?,etatCs=?,nomS=? WHERE numS = ?)
                                                            #################################################################
                                                                at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
                                                                at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1000)
                                                                at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:565)
                                                                at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
                                                                at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
                                                                at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
                                                                at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1738)
                                                                at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1686)
                                                                at ppe4.velib.Models.StationDAO.modifStation(StationDAO.java:85)
                                                                at ppe4.velib.Activities.StationActivity.onCreate(StationActivity.java:38)
                                                                at android.app.Activity.performCreate(Activity.java:6904)
                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
                                                                	... 9 more
---->la base de donnée n'a pas été retrouvée & no such column: etatCs (code 1): , while compiling: UPDATE station SET capaciteS=?,presenceborneS=?,situationS=?,etatCs=?,nomS=? WHERE numS = ?) pourtant la base est crée, la colonne etatCs est là :





voici mon code :


classe Station.java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package ppe4.velib.Metiers;
 
import java.util.ArrayList;
 
 
/**
 * Created by PC on 28/01/2017.
 */
 
public class Station {
    private int numS;
    private String etatCS;
    private String nomS;
    private String situation;
    private int capacite;
    private String presenceBorne;
 
    //une station contient +ers plots
    private static ArrayList<Plots> lesPlots = new ArrayList<Plots>();
 
    public Station(int numS, String etatCS, String nomS, String situation, int capacite, String presenceBorne) {
        this.numS = numS;
        this.etatCS = etatCS;
        this.nomS = nomS;
        this.situation = situation;
        this.capacite = capacite;
        this.presenceBorne = presenceBorne;
    }
 
    public static ArrayList<Plots> getLesPlots() {
        return lesPlots;
    }
 
 
 
    public Plots getPlot(int numP){
        return lesPlots.get(numP);
 
    }
 
    public int addPlot(Plots unPlot){
        lesPlots.add(unPlot);
        return lesPlots.indexOf(unPlot);
    }
 
 
    public String getNomS() {
        return nomS;
    }
 
    public void setNomS(String nomS) {
        this.nomS = nomS;
    }
 
    public int getNumS() {
        return numS;
    }
 
    public void setNumS(int numS) {
        this.numS = numS;
    }
 
    public String getEtatCS() {
        return etatCS;
    }
 
    public void setEtatCS(String etatCS) {
        this.etatCS = etatCS;
    }
 
    public String getSituation() {
        return situation;
    }
 
    public void setSituation(String situation) {
        this.situation = situation;
    }
 
    public int getCapacite() {
        return capacite;
    }
 
    public void setCapacite(int capacite) {
        this.capacite = capacite;
    }
 
    public String getPresenceBorne() {
        return presenceBorne;
    }
 
    public void setPresenceBorne(String presenceBorne) {
        this.presenceBorne = presenceBorne;
    }
 
 
 
}


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package ppe4.velib.Models;
 
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
/**
 * Created by PC on 11/02/2017.
 */
public class DatabaseOpenHelper extends SQLiteOpenHelper {
 
    private static final String DATABASE_NAME = "db.sqlite";
    private static final int DATABASE_VERSION = 1;
    private static DatabaseOpenHelper sInstance;
 
 
    /*création de l'unique instance de la classe
        si elle n'existe pas encore puis la retourner.
        */
    public static synchronized DatabaseOpenHelper getInstance(Context context) {
        if (sInstance == null)
        { sInstance = new DatabaseOpenHelper(context); }
        return sInstance;
    }
 
    private DatabaseOpenHelper(Context context) {    //on ne peut pas instancier la classe DatabaseOpenHelper directement car le contructeur est privé
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        // Création de la base de données
        // on exécute ici les requêtes de création des tables
        sqLiteDatabase.execSQL(StationDAO.STATION_TABLE_CREATE); // création table "station"
        sqLiteDatabase.execSQL(PlotDAO.PLOT_TABLE_CREATE); // création table "plot"
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {
        // Mise à jour de la base de données
        // méthode appelée sur incrémentation de DATABASE_VERSION
        // on peut faire ce qu'on veut ici, comme recréer la base :
        onCreate(sqLiteDatabase);
    }
 
 
}

StationDao:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package ppe4.velib.Models;
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import ppe4.velib.Metiers.Station;
 
 
 
    public class StationDAO {
 
 
    private static final String STATION_TABLE_NAME = "station";
 
    public static final String STATION_NUM = "numS";
    public static final String STATION_ETATCS = "etatCs";
    public static final String STATION_NOM = "nomS";                                      ////définir la façon dont la base de données sera ...
    public static final String STATION_SITUATION = "situationS";
    public static final String STATION_CAPACITE = "capaciteS";
    public static final String STATION_PRESENCEBORNE = "presenceborneS";
 
 
 
    public static final String STATION_TABLE_CREATE = "CREATE TABLE " + STATION_TABLE_NAME +
            " (" +
           " "+STATION_NUM + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            " "+STATION_ETATCS + "TEXT," +                                            //implementation
            " "+STATION_NOM + " TEXT, " +
            " "+STATION_SITUATION + " TEXT, " +
            " "+STATION_CAPACITE + " INTEGER , " +
            " "+STATION_PRESENCEBORNE + " TEXT);";
 
 
 
    private DatabaseOpenHelper maBaseSQLite; // notre gestionnaire du fichier DatabaseOpenHelper
        private SQLiteDatabase db;
 
        // Constructeur
        public StationDAO(Context context)
        {
            maBaseSQLite = DatabaseOpenHelper.getInstance(context);
        }
 
        public void open()
        {
            //on ouvre la table en lecture/écriture
            db = maBaseSQLite.getWritableDatabase();
        }
 
        public void close()
        {
            //on ferme l'accès à la BDD
            db.close();
        }
 
        public long addStation(Station station) {
            // Ajout d'un enregistrement dans la table
 
            ContentValues values = new ContentValues();
            values.put(STATION_ETATCS, station.getEtatCS());
            values.put(STATION_NOM, station.getNomS());
            values.put(STATION_SITUATION, station.getSituation());
            values.put(STATION_CAPACITE, station.getCapacite());
            values.put(STATION_PRESENCEBORNE, station.getPresenceBorne());
 
            // insert() retourne l'id du nouvel enregistrement inséré, ou -1 en cas d'erreur
            return db.insert(STATION_TABLE_NAME,null,values);
        }
 
        public int modifStation(Station station) {
            // modification d'un enregistrement
            // valeur de retour : (int) nombre de lignes affectées par la requête
 
            ContentValues values = new ContentValues();
            values.put(STATION_ETATCS, station.getEtatCS());
            values.put(STATION_NOM, station.getNomS());
            values.put(STATION_SITUATION, station.getSituation());
            values.put(STATION_CAPACITE, station.getCapacite());
            values.put(STATION_PRESENCEBORNE, station.getPresenceBorne());
 
            String where = STATION_NUM+" = ?";
            String[] whereArgs = {station.getNumS()+""};
 
            return db.update(STATION_TABLE_NAME, values, where, whereArgs);
        }
 
        public int supStation(Station station) {
            // suppression d'un enregistrement
            // valeur de retour : (int) nombre de lignes affectées par la clause WHERE, 0 sinon
 
            String where = STATION_NUM+" = ?";
            String[] whereArgs = {station.getNumS()+""};
 
            return db.delete(STATION_TABLE_NAME, where, whereArgs);
        }
 
        public Station getStationParNum(int numS) {
            // Retourne la station dont le num est passé en paramètre
 
            Station s =new Station(0, "", "", "",0 , "");
 
            Cursor c = db.rawQuery("SELECT * FROM "+STATION_TABLE_NAME+" WHERE "+STATION_NUM+"="+numS, null);
            if (c.moveToFirst()) {
                s.setNumS(c.getInt(c.getColumnIndex(STATION_NUM)));
                s.setEtatCS(c.getString(c.getColumnIndex(STATION_ETATCS)));
                s.setNomS(c.getString(c.getColumnIndex(STATION_NOM)));
                s.setSituation(c.getString(c.getColumnIndex(STATION_SITUATION)));
                s.setCapacite(c.getInt(c.getColumnIndex(STATION_CAPACITE)));
                s.setPresenceBorne(c.getString(c.getColumnIndex(STATION_PRESENCEBORNE)));
                c.close();
            }
 
            return s;
        }
 
        public Cursor getStations() {
            // sélection de tous les enregistrements de la table
            return db.rawQuery("SELECT * FROM "+STATION_TABLE_NAME, null);
        }
 
 
 
    }
StationActivity
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package ppe4.velib.Activities;
 
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
 
 
import ppe4.velib.Metiers.Station;
import ppe4.velib.Models.StationDAO;
import ppe4.velib.R;
 
/**
 * Created by PC on 16/02/2017.
 */
public class StationActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.station_display);
 
 
        StationDAO s = new StationDAO(this); // gestionnaire de la table "station"
        s.open(); // ouverture de la table en lecture/écriture
 
// insertion. L'id sera attribué automatiquement par incrément
//        s.addStation(new Station(0,"courant","Quinconce","Fonctionne",15,"oui"));
        s.addStation(new Station(1,"panne","victoire","reparation",20,"non"));
 
// modification du nom de la station dont l'id est 1
        Station station= s.getStationParNum(1);
        station.setEtatCS("panneset");
        station.setNomS("stGenes");
        station.setSituation("fonctionneModif");
        station.setCapacite(12);
        station.setPresenceBorne("Non");
 
        s.modifStation(station);
// suppression
        s.supStation(station);
 
// Listing des enregistrements de la table
        Cursor c = s.getStations();
        if (c.moveToFirst())
        {
            do {
                Log.d("test",
                        c.getInt(c.getColumnIndex(StationDAO.STATION_NUM)) + "," +
                                c.getString(c.getColumnIndex(StationDAO.STATION_NOM))
                );
            }
            while (c.moveToNext());
        }
        c.close(); // fermeture du curseur
 
// fermeture du gestionnaire
        s.close();
 
 
 
    }
 
 
}
Qui veut bien m'aider s'il vous plaît à debugger cette erreur ? aucune affichage, l'application s’arrête directement dès qu'on exécute.