Bonjour à tous,
Voilà, je débute sous android et, je souhaite ajouter un nouveau client dans mon application, mais l'erreur suivante apparaît dans le logcat :
06-05 15:05:36.472: E/SQLiteDatabase(654): Error inserting prenom= mail= cp= adresse= nbpizzatotal=0 tel= nbpizzaencours=0 ville= nom=
06-05 15:05:36.472: E/SQLiteDatabase(654): android.database.sqlite.SQLiteException: table client has no column named nbpizzatotal: , while compiling: INSERT INTO client(prenom,mail,cp,adresse,nbpizzatotal,tel,nbpizzaencours,ville,nom) VALUES (?,?,?,?,?,?,?,?,?)
Je ne vois pas pourquoi, en plus les champs dans la requête de l'erreur sont pas dans le même ordre que ma requête...
Voici la classe où je créé ma BDD :
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
public class DatabaseHandler extends SQLiteOpenHelper {
   public static final String TABLE_CLIENT ="client";
   public static final String COL_ID = "id";
   public static final String COL_NOM = "nom";
   public static final String COL_PRENOM = "prenom";
   public static final String COL_ADRESSE = "adresse";
   public static final String COL_CP = "cp";
   public static final String COL_VILLE = "ville";
   public static final String COL_MAIL = "mail";
   public static final String COL_TEL = "tel";
   public static final String COL_PIZZAENCOURS = "nbpizzaencours";
   public static final String COL_PIZZATOTAL = "nbpizzatotal";
 
   public static final String CREATE_BDD = 
    "CREATE TABLE " + TABLE_CLIENT + " (" +
       COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
       COL_NOM + " TEXT NOT NULL, " +
       COL_PRENOM + " TEXT NOT NULL, " +
       COL_ADRESSE + " TEXT, " +
       COL_CP + " TEXT, " +
       COL_VILLE + " TEXT, " +
       COL_MAIL + " TEXT, " +
       COL_TEL + " TEXT, " +
       COL_PIZZAENCOURS + " INTEGER DEFAULT 0, "+
       COL_PIZZATOTAL + "INTEGER DEFAULT 0);";
 
   public DatabaseHandler(Context context, String name, CursorFactory factory, int version) {
     super(context, name, factory, version);
   }
 
   public void onCreate(SQLiteDatabase db) {
     db.execSQL(CREATE_BDD);
   }
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       db.execSQL("DROP TABLE IF EXISTS" + TABLE_CLIENT + ";");
    onCreate(db); }
 
 }

La classe où je définit ma BDD :

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
public class clientBDD {
 
 private static final int VERSION_BDD=1;
 private static final String NOM_BDD="client.db";
 
 private static final String TABLE_CLIENT="client";
 public static final String COL_ID = "id";
 public static int NUM_COL_ID = 0;
 public static final String COL_NOM = "nom";
 public static int NUM_COL_NOM = 1;
 public static final String COL_PRENOM = "prenom";
 public static int NUM_COL_PRENOM = 2;
 public static final String COL_ADRESSE = "adresse";
 public static int NUM_COL_ADRESSE = 3;
 public static final String COL_CP = "cp";
 public static int NUM_COL_CP = 4;
 public static final String COL_VILLE = "ville";
 public static int NUM_COL_VILLE = 5;
 public static final String COL_MAIL = "mail";
 public static int NUM_COL_MAIL = 6;
 public static final String COL_TEL = "tel";
 public static int NUM_COL_TEL = 7;
 public static final String COL_PIZZAENCOURS = "nbpizzaencours";
 public static int NUM_COL_PIZZAENCOURS = 8;
 public static final String COL_PIZZATOTAL = "nbpizzatotal";
 public static int NUM_COL_PIZZATOTAL = 9;
 
 private SQLiteDatabase bdd;
 private DatabaseHandler dbH;
 
 public clientBDD(Context context){
  dbH = new DatabaseHandler(context, NOM_BDD, null, VERSION_BDD);
 }
 public void open(){
  bdd= dbH.getWritableDatabase();
 }
 public void close(){
  bdd.close();
 }
 public SQLiteDatabase getBDD(){
  return bdd;
 }
 public long insertClient(client cli){
  ContentValues values = new ContentValues();
  values.put(COL_NOM, cli.getNom());
  values.put(COL_PRENOM, cli.getPrenom());
  values.put(COL_ADRESSE, cli.getAdresse());
  values.put(COL_CP, cli.getCp());
  values.put(COL_VILLE, cli.getVille());
  values.put(COL_MAIL, cli.getMail());
  values.put(COL_TEL, cli.getTel());
  values.put(COL_PIZZAENCOURS, cli.getNbpizzaencours());
  values.put(COL_PIZZATOTAL, cli.getNbpizzatotal());
  return bdd.insert(TABLE_CLIENT, null, values);
 }
 
 public int updateClient(int id, client cli){
  ContentValues values = new ContentValues();
  values.put(COL_NOM, cli.getNom());
  values.put(COL_PRENOM, cli.getPrenom());
  values.put(COL_ADRESSE, cli.getAdresse());
  values.put(COL_CP, cli.getCp());
  values.put(COL_VILLE, cli.getVille());
  values.put(COL_MAIL, cli.getMail());
  values.put(COL_TEL, cli.getTel());
  values.put(COL_PIZZAENCOURS, cli.getNbpizzaencours());
  values.put(COL_PIZZATOTAL, cli.getNbpizzatotal());
  return bdd.update(TABLE_CLIENT, values, COL_ID +" = "+id, null);
 }
 
 public int removeClientwithID(int id, client cli){
  return bdd.delete(TABLE_CLIENT, COL_ID+ " = "+id, null);
 }
 public client getClientwithNom(String nom){
  Cursor c = bdd.query(TABLE_CLIENT, new String[] {COL_ID, COL_NOM, COL_PRENOM, COL_ADRESSE, COL_CP, COL_VILLE, COL_MAIL, COL_TEL, COL_PIZZAENCOURS, COL_PIZZATOTAL}, COL_NOM + " LIKE \"" + nom +"\"", null, null, null, null);
  return cursorToClient(c);
 }
 public client cursorToClient(Cursor c){
  if(c.getCount()== 0)
  {
   return null;
  }
  c.moveToFirst();
  client cli = new client();
  cli.setId(c.getInt(NUM_COL_ID));
  cli.setNom(c.getString(NUM_COL_NOM));
  cli.setPrenom(c.getString(NUM_COL_PRENOM));
  cli.setAdresse(c.getString(NUM_COL_ADRESSE));
  cli.setCp(c.getString(NUM_COL_CP));
  cli.setVille(c.getString(NUM_COL_VILLE));
  cli.setMail(c.getString(NUM_COL_MAIL));
  cli.setTel(c.getString(NUM_COL_TEL));
  cli.setNbpizzaencours(c.getInt(NUM_COL_PIZZAENCOURS));
  cli.setNbpizzatotal(c.getInt(NUM_COL_PIZZATOTAL));
  c.close();
  return cli;
 
 
 }

Et la partie de code où j'essaie d'insérer un client :

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
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.formulaire_ajout);
 
 
 
        nom = (EditText)findViewById(R.id.EtNom);
        prenom = (EditText)findViewById(R.id.EtPrenom);
        adresse = (EditText)findViewById(R.id.EtAdresse);
        cp = (EditText)findViewById(R.id.EtCp);
        ville = (EditText)findViewById(R.id.EtVille);
        mail = (EditText)findViewById(R.id.EtMail);
        tel = (EditText)findViewById(R.id.EtTel);
        ajouter=(Button)findViewById(R.id.ajouter);
        pizzaencours = (EditText)findViewById(R.id.EtNbpizza);
        pizzatotal = (EditText)findViewById(R.id.EtTotalpizza);
        strNom=nom.getText().toString();
        strPrenom=prenom.getText().toString();
        strAdresse=adresse.getText().toString();
        strCp=cp.getText().toString();
        strVille=ville.getText().toString();
        strMail=mail.getText().toString();
        strTel=tel.getText().toString();
        try{
        ipizzaencours=Integer.parseInt(pizzaencours.getText().toString());
        ipizzatotal=Integer.parseInt(pizzatotal.getText().toString());
        }catch(NumberFormatException e){
         System.err.println("Pas un entier");
        }
 
        ajouter.setOnClickListener(ajouterListener);
 }
        private OnClickListener ajouterListener = new OnClickListener() {
         public void onClick(View v){
          if(v==ajouter)
          {
          clibdd.open();
          client cli = new client(strNom, strPrenom, strAdresse, strCp, strVille, strMail, strTel, ipizzaencours, ipizzatotal);
          clibdd.insertClient(cli);
          clibdd.close();
          }
         }
        };

Si vous avez une solution à ma faire parvenir... ^^'
Merci d'avance!