繁体   English   中英

Android中的SQLITE数据库表

[英]SQLITE Database Tables in Android

我想在我的Android应用程序的一个数据库中创建多个表。

每个表的名称都不同,并且直到程序开始运行后我才知道名称,因此它们都是动态的。

但是,第一个表被创建,任何新表都被创建,我不会收到“ no such table”错误。

这是创建表的工作:

private class SQLiteHelper extends SQLiteOpenHelper {
    private static final String TAG = "SQLiteHelper";
    private String DATABASE_CREATE = "CREATE TABLE IF NOT EXISTS "
            + helper.getTableName() + "(" + helper.getTableColumns() + ");";


    public SQLiteHelper(Context context) {
        super(context, helper.getDatabaseName(), null, helper
                .getDatabaseVersion());
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(DATABASE_CREATE);
        Log.d(TAG, "database created");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS " + helper.getTableName());
        onCreate(db);
    }

}

helper是一个传递给DB构造函数的对象

public ProductDB(Context context, IDatabaseHelper helper) {
    this.context = context;
    this.helper = helper;
}

第一次创建数据库时,一切正常,一切正常,但是当我需要添加第二个表时,当我尝试访问它时,它崩溃了

我该怎么做才能解决此问题?

尝试这个:

 SQLiteDatabase db;
 SQLiteHelper dbHelper = new SQLiteHelper(context);
 db = dbHelper.getWritableDatabase();

        db.execSQL("CREATE TABLE IF NOT EXISTS "
            + helper.getTableName() + "(" + helper.getTableColumns() + ")");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM