Vous ne cageot pas la base de données avec le ContentProvider, mais avec la classe SQLiteOpenHelper. Au moins, c'est la meilleure façon de le faire
class MyDatabase extends SQLiteOpenHelper {
public MyDatabase(Context context, dbName, null, version){
super(context, dbName, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String createItemsTable = "create table mytable ("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"_title TEXT NOT NULL, " +
"_subtitle TEXT NULL " +
");";
// Begin Transaction
db.beginTransaction();
try{
// Create Items table
db.execSQL(createItemsTable);
// Transaction was successful
db.setTransactionSuccessful();
} catch(SQLException ex){
Log.e(this.getClass().getName(), ex.getMessage(), ex);
} finally {
// End transaction
db.endTransaction();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String dropItemsTable = "DROP TABLE IF EXISTS mytable";
// Begin transaction
db.beginTransaction();
try {
if(oldVersion<2){
// Do your update/alter code here
}
db.setTransactionSuccessful();
} catch(Exception ex){
Log.e(this.getClass().getName(), ex.getMessage(), ex);
} finally {
// Ends transaction
// If there was an error, the database won't be altered
db.endTransaction();
}
}
}
les instanciez simplement votre aide avec
MyDatabase myDb = new MyDatabase(getContext(),"databasename.db", null, 1);
L'assistant va alors créer la base de données, si elle n'existe pas, le mettre à jour si une version plus ancienne existe ou simplement l'ouvrir si elle existe et la version correspond
Merci ... cela a fonctionné! –