0

为什么会发生此错误。我已经有一个数据库。然后我添加表并在其中插入一个项目。我控制这个步骤,当我插入项目时没有错误。但是当我想阅读我将项目放在我的新表中时,会发生这个错误。它说我没有找到。我在模拟器中控制它,我将 .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 回答