我有一些奇怪的行为。 如果数据库中不存在的,我在我的活动执行以下代码:数据库已存在时创建新表的问题
listOpenHelper = new ListOpenHelper(ManageListActivity.this);
db = listOpenHelper.getReadableDatabase();
Cursor cursor = db.query(ListOpenHelper.TABLE_NAME, null, null, null, null, null, BaseColumns._ID + " DESC");
该数据库在这里创建并创建表列表,没有问题。
问题是,当我尝试在其他活动来执行一个类似的块:
productListOpenHelper = new ProductListOpenHelper(ProductListActivity.this);
db = productListOpenHelper.getReadableDatabase();
Cursor cursor = db.query(ProductListOpenHelper.TABLE_NAME, null, null, null, null, null, ProductListOpenHelper.NAME + " ASC");
在这种情况下,我得到的例外“android.database.sqlite.SQLiteException:没有这样的表:表:,同时编译:SELECT * FROM list ORDER BY _id DESC“
如果我删除数据库并执行第一个上述块,并在第一个块之后,错误将在productlist表中。
我需要在第一次执行中创建所有我的表? 我喜欢在用户输入每个活动时创建表格,有一些很好的方法可以做到这一点?
谢谢!
每次用户打开另一个活动时,为什么要删除并重新创建表格?数据库的全部目的是......存储数据。 – Jack
我没有删除并重新创建,我创建了一次,问题是当我尝试在现有数据库中创建另一个表时。 –