2011-08-11 6 views

답변

0

일단 라이브로하고 싶지 않은 경우 매번 응용 프로그램 관리자의 데이터를 지울 수 있습니다. 또한, 서로 다른 데이터베이스의 버전 번호를 확인하고 onUpgrade 파괴하고 난 내 코드에서이 하나 : 변경 슈퍼 (문맥, DBNAME, 널 (null), < 데이터베이스 버전을 사용하는 DB

private static final String DATABASE_NAME = "MyDbName"; 
private static final int DATABASE_VERSION = 6; 
private static class DbOpenHelper extends SQLiteOpenHelper{ 

public DbOpenHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    onUpgrade(this.getWritableDatabase(), 0, 0); 
     // 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(TableHelper1.CREATE_TABLE_QUERY); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS "+ TableHelper1.TABLE_NAME); 

     onCreate(db); 
    } 

} 
+0

업그레이드 기능에서 가장 좋은 방법은 모든 테이블을 놓은 다음 onCreate 함수를 호출하는 것입니다. – tjb

+1

일반적으로 db 버전을 지정하는 SQLiteOpenHelper 필드가 있으며 생성자에이를 전달합니다. public SQLiteOpenHelper (컨텍스트 컨텍스트, 문자열 이름, SQLiteDatabase.CursorFactory 팩토리, int 버전). db를 대체 할 준비가되면 버전을 증가시킵니다. – aha

+0

Pyrodante, 리뷰를 수락하고 매번 다시 시작할 때마다 데이터베이스를 업데이트하도록 수정하십시오. 깔끔하게 설치하면 불행하게도 두 번 만들어지고 파괴 될 것입니다. – tjb

0

Eclipse에서는 디버그 구성으로 이동 한 다음 왼쪽에있는 Android 애플리케이션으로 이동합니다. 사용중인 디버그 구성을 선택한 다음 대상 탭을 선택하십시오.

하단에는 '사용자 데이터 지우기'라는 체크 박스가 표시됩니다.

시뮬레이터를 실행할 때마다 해당 응용 프로그램과 관련된 데이터 (SQLite 데이터베이스 포함)가 지워지는지 확인하십시오.

응용 프로그램에서 SQLiteOpenHelper에 대해 onCreate()를 호출하면 데이터베이스가 다시 만들어집니다.

+0

에뮬레이터를 다시 시작해야하므로 버전을 업데이트하는 것보다 확실히 시간이 오래 걸리기 때문에 바람직하지 않습니다. 그리고 에뮬레이터가 아닌 전화로 디버깅하는 데는 적용되지 않습니다. – aha

2
public class DatabaseHelper extends SQLiteOpenHelper { 

public DatabaseHelper(Context context) { 
    super(context, dbName, null, 1); 

} 
@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE USERS (username TEXT, password TEXT);"); 
} 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS USERS"); 
    onCreate(db); 
} 

을 다시 만들 수 있습니다 number>); onUpgrade 메서드를 실행합니다.