0

アプリケーション内で SQLite データベースを使用したいと考えています。を拡張するクラスを作成しましたSQLiteOpenHelper。私が最初にコードを書いたとき、データベースは/data/data/(package)/database. The package name was my reverse domain + /mobile/app. 次に、逆のプロジェクト内に別のパッケージを作成しdomain + /mobile/data、データベース クラスをそこに移動しました。

/data/data/(original package)/database(スナップショットを使用しないために)エミュレータをリロードするまで存在していました。

それ以来:

/data/data/(original package)/が作成されますが、データベース ディレクトリ/data/data/(data package)/がなく、ファイル システムに作成されません。私が試してみました:

データベース クラスを元のパッケージに戻す

エミュレータの新しいバージョンの作成

エミュレータ内でアプリをアンインストールしてから再インストールします。

データベースのバージョン変数を増やす

アプリの他の部分で、データベース クラスに関連付けられたコードにコメントを付けます。

これが私のdbクラスコードです。

public class BusinessOpsDatabase extends SQLiteOpenHelper {
private static final String TAG = "BusinessOpsDatabase";
private static final int DB_VERSION = 1;
private static final String DB_NAME = "bss_business_ops";

// country table variables
public static final String TABLE_COUNTRY = "country";
public static final String ID = "_ID";
public static final String COL_COUNTRY_NAME = "country_name";

private static final String CREATE_TABLE_COUNTRY = "create table "
        + TABLE_COUNTRY + " (" + ID
        + " integer primary key autoincrement, " + COL_COUNTRY_NAME
        + " text not null);";
private static final String COUNTRY_SCHEMA = CREATE_TABLE_COUNTRY;


public BusinessOpsDatabase(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    // create tables
    db.execSQL(COUNTRY_SCHEMA);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // drop country
    Log.w(TAG, "Upgrading database. Existing contents will be lost. ["
            + oldVersion + "]->[" + newVersion + "]");
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_COUNTRY);


    // create tables
    onCreate(db);

}
}
4

2 に答える 2

0

次のコードをデータベースコンストラクターに追加することで、問題を解決できました。

SQLiteDatabase db = getWritableDatabase();
于 2013-07-30T10:20:54.860 に答える
0

http://www.techotopia.com/index.php/An_Android_SQLite_Database_Tutorial

上記のリンクを使用して学習してください。sqliteに関するすべての問題を解決できます

于 2013-07-30T10:28:30.513 に答える