发生此错误的原因。我已经有了一个数据库。我添加表并在其中插入一个项目。我控制这个步骤,当我插入项目没有错误。但是当我想读取我把项目放在我的新表中时,会发生此错误。它说我不find.I在模拟器中控制它,我将.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) {
}
}
答案 0 :(得分: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)");
}