Bonjour,
Je fais une requête SELECT mais l'erreur suivante s'affiche:
Et voici le code:
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 06-11 11:27:11.051: E/AndroidRuntime(873): FATAL EXCEPTION: main 06-11 11:27:11.051: E/AndroidRuntime(873): android.database.sqlite.SQLiteException: near ""Petot"": syntax error: , while compiling: SELECT nbpizzaencours FROM client WHERE nomLIKE "Petot" 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteProgram.compileSql(SQLiteProgram.java:143) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteProgram.compileAndbindAllArgs(SQLiteProgram.java:361) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:127) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:94) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:53) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1564) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1449) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1405) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1485) 06-11 11:27:11.051: E/AndroidRuntime(873): at com.example.cartedefidelite.clientBDD.getNbpizzawithNom(clientBDD.java:99) 06-11 11:27:11.051: E/AndroidRuntime(873): at com.example.cartedefidelite.FideliteActivity$1.onClick(FideliteActivity.java:39) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.view.View.performClick(View.java:3480) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.view.View$PerformClick.run(View.java:13983) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.os.Handler.handleCallback(Handler.java:605) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.os.Handler.dispatchMessage(Handler.java:92) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.os.Looper.loop(Looper.java:137) 06-11 11:27:11.051: E/AndroidRuntime(873): at android.app.ActivityThread.main(ActivityThread.java:4340) 06-11 11:27:11.051: E/AndroidRuntime(873): at java.lang.reflect.Method.invokeNative(Native Method) 06-11 11:27:11.051: E/AndroidRuntime(873): at java.lang.reflect.Method.invoke(Method.java:511) 06-11 11:27:11.051: E/AndroidRuntime(873): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 06-11 11:27:11.051: E/AndroidRuntime(873): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 06-11 11:27:11.051: E/AndroidRuntime(873): at dalvik.system.NativeStart.main(Native Method)Ainsi que ma fonction
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 public class FideliteActivity extends AffichageClientActivity /*implements View.OnClickListener*/ { clientBDD clibdd = new clientBDD(this); EditText nombre; Button detail; Button ok; String nomduclient; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fidelite); //récupération de la valeur de l'edittext Bundle objetbundle = this.getIntent().getExtras(); nomduclient = objetbundle.getString("nomclient"); detail = (Button) findViewById(R.id.Detail); ok = (Button) findViewById(R.id.valider); nombre = (EditText) findViewById(R.id.nb); ok.setOnClickListener(validerListener); detail.setOnClickListener(detailclientListener); } private OnClickListener validerListener = new OnClickListener(){ public void onClick(View v){ if(v==ok){ //récupération de la valeur dans l'EditText String nb = nombre.getText().toString(); int nbpizz = Integer.parseInt(nb); //connexion à la BDD et récupération du nombre de pizza existant cliBDD.open(); cli = cliBDD.getNbpizzawithNom(nomduclient); int nbexist = cli.getNbpizzaencours(); //calcul plus affichage des avantages fidelité nbexist = nbexist + nbpizz; if(nbexist >=30) { Toast.makeText( FideliteActivity.this, "3 pizzas gratuites!", Toast.LENGTH_LONG).show(); nbexist = nbexist-30; } else if(nbexist >=20){ Toast.makeText( FideliteActivity.this, "2 pizzas gratuites!", Toast.LENGTH_LONG).show(); nbexist = nbexist-20; }else if(nbexist >=10){ Toast.makeText( FideliteActivity.this, "1 pizza gratuite!", Toast.LENGTH_LONG).show(); nbexist = nbexist-10; } else{ Toast.makeText( FideliteActivity.this, "Pas de pizza gratuite pour cette fois!", Toast.LENGTH_LONG).show(); } //mis à jour de la BDD //cliBBD.updateClient(int id, client cli); //fermeture de la BDD cliBDD.close(); } } }; private OnClickListener detailclientListener = new OnClickListener(){ public void onClick(View v){ Intent versDetail = new Intent(getApplicationContext(), DetailClientActivity.class); versDetail.putExtra("nomclient",nomduclient); startActivity(versDetail); } }; }Donc, je me suis dit que c'était comme la dernière fois, puisque j'ai rajouté cette fonction après, et que je devais donc désinstaller/réinstaller l'appli de l'émulateur, seulement l'erreur persiste
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 public client getNbpizzawithNom(String nom) { Cursor c = bdd.query(TABLE_CLIENT, new String[] { COL_PIZZAENCOURS }, 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; }
Comment remédier à ce problème?
Merci d'avance![]()
Partager