[英]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.