Bonsoir
Je vous serais reconnaissant de m'épauler, j'ai cherché dans tous les sens mais je n'y arrive pas.
J'ai suivi un tuto, j'ai bien vérifié la syntaxe, rien à faire mon appli bloque lorsque j'appui sur le bouton destiné à l'affichage des données.
Lorsque je désactive le bouton d'affichage l'appli se lance et s'affiche sans problème.
L'erreur suivante marquée dans l'onglet logcat comme suit :
02-20 23:20:17.377 16522-16522/com.example.sqlitedatabase E/SQLiteLog: (1) near "tableBook_table": syntax error
Voici mon code ci-dessous:android.database.sqlite.SQLiteException: near "tableBook_table":
syntax error (code 1): , while compiling: CREATE tableBook_table
(ID INTEGER PRIMARY KEY AUTOINCREMENT, NOM TEXT, AUTEUR TEXT, CATEGORY TEXT)
Fichier SQLiteDataBaseHelper.java
Mon fichier MainActivity.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 package com.example.sqlitedatabase; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; import java.util.Locale; //méthode pour création BDD et Table public class SQLiteDataBaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "Book.db"; public static final String TABLE_NAME = "Book_table"; public static final String COL_1 = "ID"; public static final String COL_2 = "NOM"; public static final String COL_3 = "AUTEUR"; public static final String COL_4 = "CATEGORY"; //constructeur rempli public SQLiteDataBaseHelper (Context context) { super(context, DATABASE_NAME,null, 1); } //constructeur vide public void onCreate (SQLiteDatabase db) { db.execSQL("CREATE table" + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, NOM TEXT, AUTEUR TEXT, CATEGORY TEXT)"); } public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion){ db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } public boolean insertData(String nom, String auteur, String categorie ) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL_2, nom); contentValues.put(COL_3,auteur); contentValues.put(COL_4,categorie); long result=db.insert(TABLE_NAME, null, contentValues); if (result == -1) return false; else return true; } }
Mon fichier actiuvity_main.xml
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 package com.example.sqlitedatabase; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { SQLiteDataBaseHelper db; //déclaration des objets widget EditText nomInput, auteurInput, categorieInput; Button buttonAddData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); db = new SQLiteDataBaseHelper(this); nomInput = (EditText) findViewById(R.id.nom_edittext); auteurInput = (EditText) findViewById(R.id.auteur_edittext); categorieInput = (EditText) findViewById(R.id.category_edittext); buttonAddData = (Button) findViewById(R.id.ajouter_button); AddData(); } public void AddData(){ buttonAddData.setOnClickListener( new View.OnClickListener(){ public void onClick (View view){ // insert the new rav data on click of the button boolean isInserted = db.insertData(nomInput.getText().toString(), auteurInput.getText() .toString(), categorieInput.getText().toString()); if (isInserted==true) { Toast.makeText(MainActivity.this, "Data est insérer avec succès", Toast.LENGTH_LONG).show(); } else Toast.makeText(MainActivity.this, "Les données ne sont pas insérées", Toast.LENGTH_LONG).show(); } } ); } }
Mon fichier AndroidManifest.xml
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 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/nom_textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Nom" android:textStyle="bold" android:textSize="30sp" /> <EditText android:id="@+id/nom_edittext" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:hint="nom" /> <TextView android:id="@+id/auteur_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Auteur" android:textStyle="bold" android:textSize="30sp" /> <EditText android:id="@+id/auteur_edittext" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="auteur" android:inputType="text" /> <TextView android:id="@+id/category_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Catégorie" android:textSize="30sp" android:textStyle="bold" /> <EditText android:id="@+id/category_edittext" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="catégorie" android:inputType="text" /> <Button android:id="@+id/ajouter_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5sp" android:layout_marginTop="3sp" android:layout_marginBottom="3sp" android:background="@color/colorAccent" android:clickable="true" android:elevation="4sp" android:padding="20sp" android:text="Ajouter à la base" /> </LinearLayout>
Code xml : 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 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sqlitedatabase"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Mon fichier string.xml
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">SQLiteDatabase</string> <string name="nom_textview">nom</string> <string name="nom_edittext">nom</string> <string name="auteur_textview">auteur</string> <string name="auteur_edittext">auteur</string> <string name="category_textview">categorie</string> <string name="category_edittext">categorie</string> <string name="ajouter_button">Ajouter à la base</string> </resources>
Je suppose qu'il y a une erreur dans le passage du code suivant qu'en pensez vous ?
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void onCreate (SQLiteDatabase db) { db.execSQL("CREATE table" + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, NOM TEXT, AUTEUR TEXT, CATEGORY TEXT)"); }
Cordialement
rapidego
Partager