0

データベースの作成中に常にこのエラーが発生します。

java.lang.IllegalArgumentException: バージョンは android.database.sqlite.SQLiteOpenHelper で >= バージョン 0 でなければなりません

これを解決する方法はありますか。私のコードは以下のとおりです

public class DatabaseHandler extends SQLiteOpenHelper{

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME   = "Exm"; 
    private static final String KEY_ID          = "id";
    private static final String KEY_USERID      = "userId";
    private static final String KEY_USERNAME    = "userName";
    private static final String KEY_LOGINSTATUS = "userLoginStatus";

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public void onCreate(SQLiteDatabase db) {
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_USER + "("
                                        + KEY_ID +   " INTEGER PRIMARY KEY ,"
                                        + KEY_USERID + " VARCHAR (32) ,"
                                        + KEY_USERNAME + " VARCHAR (50),"
                                        + KEY_LOGINSTATUS + " INTEGER" + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
        // Create tables again
        onCreate(db);
    }
}
4

2 に答える 2

1

宣言していることを確認してくださいTABLE_USER。上記のコードには表示されません。

于 2013-03-18T07:02:50.177 に答える
0

onUpgrade()内からonCreate(db)を呼び出さないでください。

コードを再利用する場合は、そのコードを別の場所に配置し、onCreateおよびonUpgradeからそのメソッドを呼び出します。

文字列CREATE_CONTACTS_TABLE="CREATE TABLE" + TABLE_USER + "("
                                    + KEY_ID + "INTEGER PRIMARY KEY、"
                                    + KEY_USERID + "VARCHAR(32)、"
                                    + KEY_USERNAME + "VARCHAR(50)、"
                                    + KEY_LOGINSTATUS + "INTEGER" + ")";
    db.execSQL(CREATE_CONTACTS_TABLE);

このコードを別のメソッドに保持し、onCreateメソッドとonUpgradeメソッド内からそのメソッドを呼び出します。

于 2013-03-18T07:41:52.960 に答える