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 :
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...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 (?,?,?,?,?,?,?,?,?)
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!![]()
Partager