Android SQLite将用户定义的表名添加到预制数据库

时间:2013-04-05 13:41:59

标签: android sqlite

这是我的第一篇文章,如果我做错了什么,请原谅我。我在我的资源文件夹中有一个数据库,我在启动时将其带入我的应用程序,然后我可以通过在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();因为现在我的数据库只在我使用其他方法查看信息时才更新)任何关于我的方法的反馈这样做以及你推荐的任何其他方式都会非常感激,因为我是新手。谢谢!

1 个答案:

答案 0 :(得分:0)

使用新版本初始化SQLiteOpenHelper时会调用

onUpgrade()