我对创建的DB有问题。它找不到表"日记"我认为这是DB问题的更新,我在Create Script中看不到任何问题。我试图卸载该应用程序,但没有任何改变。这是代码和错误:
没有这样的桌子日记
private static final String CREATE_BDD = "CREATE TABLE " + TABLE_CONTACTBL + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM + " TEXT NOT NULL, "
+ COL_NUM + " TEXT NOT NULL, " + COL_NUM_RECH + " TEXT NOT NULL, " + COL_PREFIX +" TEXT NOT NULL);"
+ "CREATE TABLE " + TABLE_JOURNAL + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_CONTACT + " TEXT NOT NULL, "
+ COL_DATE + " INTEGER NOT NULL, " + COL_TYPE + " TEXT NOT NULL);"
+ "CREATE TABLE " + TABLE_GROUPES + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM + " TEXT NOT NULL);"
+ "CREATE TABLE " + TABLE_FAVORITES + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_ID_MSG + " INTEGER);"
+ "CREATE TABLE " + TABLE_CONTACTWL + " ("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM + " TEXT NOT NULL, "
+ COL_GROUPE + " INTEGER, "+ COL_NUM +" TEXT NOT NULL);";
@Override
public void onCreate(SQLiteDatabase db) {
//on crée la table à partir de la requête écrite dans la variable CREATE_BDD
db.execSQL(CREATE_BDD);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//On peut faire ce qu'on veut ici moi j'ai décidé de supprimer la table et de la recréer
//comme ça lorsque je change la version les id repartent de 0
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTBL + ";");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_JOURNAL + ";");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_GROUPES + ";");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTWL + ";");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_FAVORITES + ";");
onCreate(db);
}
是什么导致错误:
try {
journalList = notificationsDAO.getAllNotifications();
} catch (SQLiteException e){
errorMessage=e.getMessage();
notificationsDAO.close();
return false;
}
public ArrayList<NotificationJournal> getAllNotifications(){
//Récupère dans un Cursor les valeurs correspondant à un livre contenu dans la BDD (ici on sélectionne le livre grâce à son titre)
Cursor c = bdd.query(TABLE_JOURNAL,new String[]{"*"},null, null, null, null, null);
return cursorToList(c);
}
需要帮助来刷数据并拥有我的真实数据库。谢谢。
您可以使用execSQL()
执行单个SQL语句。第一个;
之后的任何内容均未执行。
将包含多个CREATE TABLE
语句的字符串分开为单独的execSQL()
调用。
使用此代码:
@Override
public synchronized void onCreate(SQLiteDatabase db) {
String sqls[] = CREATE_BDD.split(";");
for (String sql : sqls)
db.execSQL(CREATE_BDD);
}