Bonjour,

Je cherche désespérement a implanter une bas de données dans mon application.

Ci dessous le code de ma classe Db

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
package tuto.phanou;
 
import java.util.ArrayList;
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
public class Db extends SQLiteOpenHelper{
 
	private static String BASE_NAME = "Ma_Base";
	private static final int BASE_VERSION = 1;
	private static String BASE_TABLE_NAME = "Memo";
	private static SQLiteDatabase db;
 
	private static String CREATE_TABLE = "create table " 
										+ BASE_TABLE_NAME + " ("
										+ "techkey integrer PRIMARY KEY AUTOINCREMENT,"
										+ "titre VARCHAR(250) NOT NULL,"
										+ "description VARCHAR(250) NOT NULL" + ")";
	public Db(Context context)
	{
		super(context, BASE_NAME, null, BASE_VERSION);
			db = getWritableDatabase();
	}
 
	/** Exécuté si la table n'existe pas */	
	@Override
	public void onCreate(SQLiteDatabase db)
	{
		db.execSQL(CREATE_TABLE);
	}
 
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
	{
		db.execSQL("DROP TABLE IF EXISTS "+ BASE_TABLE_NAME);
		onCreate(db);
	}
 
	public long insertUser(String Titre, String Description)
	{
		ContentValues userToInsert = new ContentValues();
		userToInsert.put("titre", Titre);
		userToInsert.put("bla bla", Description);
		return db.insert(BASE_TABLE_NAME, null, userToInsert);
	}
 
	public ArrayList<String> getPersonnes()
	{
		ArrayList<String> output = new ArrayList<String>();
		String[] Colonnes_Recup = new String[] {"titre", "description"};
 
		Cursor Resultat = db.query(BASE_TABLE_NAME, Colonnes_Recup, null, null, null, null, "titre asc, description asc", null);
		if (null != Resultat )
		{
			if (Resultat.moveToFirst())
			{
				do
				{
					int columnId_titre = Resultat.getColumnIndex("titre");
					int columnId_description = Resultat.getColumnIndex("description");
					String Result = Resultat.getString(columnId_titre)+" "+  Resultat.getString(columnId_description);
					output.add(Result);
				}
			while (Resultat.moveToNext());
			}
 
		}
		return output;
	}		
}
Mon programme ne démarre même pas, apparement une erreur dans
Code : Sélectionner tout - Visualiser dans une fenêtre à part
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
Je n'arrive pas à savoir ce qui ne va pas.

Merci d'avance pour votre aide

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
02-28 13:49:31.511: ERROR/AndroidRuntime(660): FATAL EXCEPTION: main
02-28 13:49:31.511: ERROR/AndroidRuntime(660): java.lang.RuntimeException: Unable to start activity ComponentInfo{tuto.phanou/tuto.phanou.tuto}: java.lang.NullPointerException
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.os.Looper.loop(Looper.java:123)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.app.ActivityThread.main(ActivityThread.java:4627)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at java.lang.reflect.Method.invokeNative(Native Method)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at java.lang.reflect.Method.invoke(Method.java:521)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at dalvik.system.NativeStart.main(Native Method)
02-28 13:49:31.511: ERROR/AndroidRuntime(660): Caused by: java.lang.NullPointerException
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at tuto.phanou.Db.<init>(Db.java:26)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at tuto.phanou.tuto.onCreate(tuto.java:48)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
02-28 13:49:31.511: ERROR/AndroidRuntime(660):     ... 11 more