0

このエラーが発生する理由。私はすでにデータベースを持っています。そして、テーブルを追加してそこにアイテムを挿入します。この手順を制御し、アイテムを挿入してもエラーは発生しません。しかし、新しいテーブルにアイテムを配置したときに、このエラーが発生します。 find.emulator で制御し、デスクトップに .db をプッシュして開きます。表示されます。はい、新しいテーブルはありません。しかし、そうである必要があります。

アプリを削除してアプリを再インストールしても問題はありません。テーブルはそこにあります。しかし、私は再インストールしたくありません。アップグレードしたいのです。これには何ができますか?

package xxxxx;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DB_NAME="xxx.db";
    public static final String TABLE_NAME="already_exist";
    public static final String TABLE_NAME2="already_exist2";
    public static final String TABLE_NAME3="new_table";
    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, 2);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE " + TABLE_NAME + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, s TEXT)");
        db.execSQL("CREATE TABLE " + TABLE_NAME2 + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, a TEXT,v TEXT)");
        db.execSQL("CREATE TABLE " + TABLE_NAME3 + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, x TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

       }

}
4

1 に答える 1

0
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
arg0.execSQL("CREATE TABLE " + TABLE_NAME3 + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, x TEXT)");
   }


@Override
public void onDowngrade(SQLiteDatabase arg0, int arg1, int arg2) {
arg0.execSQL("CREATE TABLE " + TABLE_NAME3 + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, x TEXT)");
   }
于 2012-07-02T08:09:26.390 に答える