Welcome. 이 방법으로 갱신
데이타베이스 :데이터베이스 업데이트
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion) {
Log.e("TAG", "New database version exists for upgrade.");
try {
Log.e("TAG", "Copying database...");
copyDataBase();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
문제는 내가 통계의 데이터베이스에서 테이블을 가지고있다, 나는 새 데이터베이스로 복사됩니다이 테이블의 데이터를 주문하고 싶었다.
어떻게하면됩니까? 예를 물어보십시오.
불쌍한 영어에 감사드립니다.
나는이하려고 노력 :
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion) {
Log.e("TAG", "New database version exists for upgrade.");
db.beginTransaction();
try {
Log.e("TAG", "Copying database...");
this.getReadableDatabase();
ArrayList<Statystyka> statystyki = getAllStatistic();
copyDataBase();
for (int i = 0; statystyki.size() >= i; i++) {
addStat(statystyki.get(i).getId_pytania(),
statystyki.get(i).getIlosc_rozwiazan(), statystyki
.get(i).getIlosc_poprawnych(), statystyki
.get(i).getIlosc_blednych());
}
db.setTransactionSuccessful();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.endTransaction();
}
}
을하지만 오류 얻을 :
java.lang.IllegalStateException :
가 어떻게에 데이터베이스를 열 않는 재귀라는 getReadableDatabase을 데이터를로드 하시겠습니까?
이미 새 열을 추가하는 방법을 알고 있으며 이제 새 테이블을 이전 데이터로 채우는 방법을 알고 있습니까? – kurdak