我出现了“无此表”错误,尝试了各种方法来解决它,现在它已经解决了,但我还是感到困惑。这是我的情况:
我有两个需要在应用程序中创建的表格。我为每个表格放置了一个类,代码如下所示。如果我按照这样做,当我从“Table2”中提取数据时,会出现“无此表”的错误,因此我需要将DATABASE_NAME更改为另一个值=“DB2”;然后“Table2”就能成功创建并能够提取数据。
那么我的问题是,这是确保两个表格成功创建的正确方式吗?还是我不应该将表分成两个类?请给我建议。
我有两个需要在应用程序中创建的表格。我为每个表格放置了一个类,代码如下所示。如果我按照这样做,当我从“Table2”中提取数据时,会出现“无此表”的错误,因此我需要将DATABASE_NAME更改为另一个值=“DB2”;然后“Table2”就能成功创建并能够提取数据。
那么我的问题是,这是确保两个表格成功创建的正确方式吗?还是我不应该将表分成两个类?请给我建议。
public class DB1 extends SQLiteOpenHelper {
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "DB";
// Labels table name
private static final String TABLE_STORE = "Table1";
// Labels Table Columns names
public static final String KEY_1 = "col1";
public RC_StoreTbl(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
// Category table create query
String CREATE_TABLE = "CREATE TABLE " + TABLE_STORE + "("
+KEY_1 + " INTEGER PRIMARY KEY)";
db.execSQL(CREATE_TABLE);
}
}
另一个类
public class DB2 extends SQLiteOpenHelper {
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "DB";
// Labels table name
private static final String TABLE_STORE = "Table2";
// Labels Table Columns names
public static final String KEY_1 = "col1";
public RC_StoreTbl(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
// Category table create query
String CREATE_TABLE = "CREATE TABLE " + TABLE_STORE + "("
+KEY_1 + " INTEGER PRIMARY KEY)";
db.execSQL(CREATE_TABLE);
}
}