Bonjour à tous et bonne année ,

Je reviens une nouvelle fois vers vous car après avoir tenter plein de choses (+ ou - farfelues parfois ) depuis ce matin, je reste bloqué.

En fait j'ai créé une bdd "divert.bd" puis une table "divertissement" et tout marche...
Jusque là, pas de problèmes.

J'ai ensuite ajouté une table "commentaires" a ma bdd "divert.bd" sur le même shema que la 1ere :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
//la table commentaires:
		db.execSQL("CREATE TABLE " + SQLITE_TABLE_COMMS + " ( " + KEY_ID_COMM + " INTEGER PRIMARY KEY AUTOINCREMENT," 
				+ KEY_ID_DIVERT + " TEXT NOT NULL," 
				+ KEY_LE_COMM + " TEXT NOT NULL,"  
				+ KEY_LA_NOTE + " TEXT NOT NULL);");
Seulement, quand je souhaite y accéder, j'ai un nullpointerException sur un champ qui ne se trouve pas dans le curseur!
j'ai bien listé les champs dudit curseur avec Log.v sur les elements de cursor.getColumnsNames et il contient bien les champs que j'attend.

voici le code que j'utilise pour l'affichage (qui marche si je requete sur la 1ere table :s)
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
Cursor cursor = bdd.getTousLesComms();
 
	Log.v("tag","nb_col : "+cursor.getColumnCount());	
	for(String e : cursor.getColumnNames() ){
		Log.v("tag","col_names : "+e);
	}
 
	// les champs de la BDD a afficher
	String[] columns = new String[] { BDD.KEY_DESCRIPTION/*, BDD.KEY_NOM, BDD.KEY_PAYS*/ };
 
	int[] to = new int[] { R.id.commentaire/*, R.id.nom, R.id.pays */};
 
	// creation de l'adapter
	SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.comms_info, cursor, columns, to, 0);
// on recupere la liste et on lui affecte l'adapter
	ListView listComms = (ListView) findViewById(R.id.listComms);
	listComms.setAdapter(adapter);
l'erreur indique "column "_id" doesn't exist" alors que ma table commentaires n'en contient pas (l'id étant designé par "id_comm")

Je pense donc que le problème vient du fait que la table commentaire n'est pas bien crée dans ma table MAIS je ne sais pas comment verifier cela puisque je n'ai pas accés au ficher ".db" (l'emulateur n'étant pas rootable)

voici donc mes questions:
- comment peux t'on s'assurer qu'une table a bien été crée dans la bdd?
- peux t'on lister/afficher le contenu d'une table depuis le code android?

Ou si jamais vous trouvez une erreur dans mon code...
parce que là j'avoue que je desespere un peu

D'avance merci,
Geoffrey.

EDIT : bon la table est bien créée car même si je n'arrive pas à l'afficher avec l'adapter, la methode d'ajout en base marche bien (la methode bd.insert(...) retourne bien l'id de la ligne ajoutée et il est incrémenté a chaque utilisation)

je poste ci dessous l'erreur au cas ou :s
01-03 16:56:26.747: E/AndroidRuntime(1666): FATAL EXCEPTION: main
01-03 16:56:26.747: E/AndroidRuntime(1666): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gob.movurbuddies/com.gob.movurbuddies.F2_FicheDescriptive_Activity}: java.lang.IllegalArgumentException: column '_id' does not exist
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.os.Handler.dispatchMessage(Handler.java:99)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.os.Looper.loop(Looper.java:123)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-03 16:56:26.747: E/AndroidRuntime(1666): at java.lang.reflect.Method.invokeNative(Native Method)
01-03 16:56:26.747: E/AndroidRuntime(1666): at java.lang.reflect.Method.invoke(Method.java:521)
01-03 16:56:26.747: E/AndroidRuntime(1666): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-03 16:56:26.747: E/AndroidRuntime(1666): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-03 16:56:26.747: E/AndroidRuntime(1666): at dalvik.system.NativeStart.main(Native Method)
01-03 16:56:26.747: E/AndroidRuntime(1666): Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.support.v4.widget.CursorAdapter.init(CursorAdapter.java:174)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.support.v4.widget.CursorAdapter.<init>(CursorAdapter.java:151)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.support.v4.widget.ResourceCursorAdapter.<init>(ResourceCursorAdapter.java:93)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.support.v4.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:89)
01-03 16:56:26.747: E/AndroidRuntime(1666): at com.gob.movurbuddies.F2_FicheDescriptive_Activity.displayListView(F2_FicheDescriptive_Activity.java:121)
01-03 16:56:26.747: E/AndroidRuntime(1666): at com.gob.movurbuddies.F2_FicheDescriptive_Activity.onStart(F2_FicheDescriptive_Activity.java:100)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.Activity.performStart(Activity.java:3781)
01-03 16:56:26.747: E/AndroidRuntime(1666): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2636)
01-03 16:56:26.747: E/AndroidRuntime(1666): ... 11 more