0

这是我的第一篇文章,如果我做错了什么,请原谅我。我的资产文件夹中有一个数据库,我在启动时将它带入我的应用程序,然后我可以通过在 onUpgrade 中运行此代码来创建一个新表(只要版本不匹配)。

if(oldVersion < 2){ db.execSQL("CREATE TABLE IF NOT EXISTS " + WorkoutsList.DATABASE_TABLE_DYNAMIC + " (" +
                    WorkoutsDBAdapter.WORKOUTS_ROW_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                    WorkoutsDBAdapter.WORKOUTS_NAME + " TEXT NOT NULL, " +
                    WorkoutsDBAdapter.WORKOUTS_WEIGHT + " DECIMAL NOT NULL, "+
                    WorkoutsDBAdapter.WORKOUTS_SETS + " INT NOT NULL, "+
                    WorkoutsDBAdapter.WORKOUTS_REPS + " INT NOT NULL);");}

我通过单击一个按钮来运行此代码

    btnUpdate.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            String table = tableName.getText().toString();
            DATABASE_TABLE_DYNAMIC = table;
            if (table.trim().length() > 0) {
            DbHelper.addTable();
            }
            else{
                Toast.makeText(getApplicationContext(), "Please enter table name",
                    Toast.LENGTH_SHORT).show();
            }
        }


    });

DbHelper.addTable(); 只需将数据库版本增加 1。(它曾经做其他事情,这就是为什么名称未领先)。是否可以在按下按钮后立即运行 onUpgrade(只要 DbHelper.addTable(); 运行,因为现在我的数据库只有在我使用另一种方法查看信息时才会更新)关于我的方法的任何反馈这样做以及您推荐的任何其他方式将不胜感激,因为我是新手。谢谢!

4

1 回答 1

0

onUpgrade()当您使用新版本初始化 SQLiteOpenHelper 时调用。

于 2013-04-07T11:31:59.407 回答