当前位置:首页 > 数据库 > SQlite

SQLite数据库android创建表

“我得到错误”没有这样的表“,并让我尽一切可能让它消失,现在它已经消失了,但我很困惑.这是我的情况

我需要在应用程序中创建2个表.我为每个表放了一个类,它看起来像下面的代码.如果我按照这个,当我从“Table2”中提取数据时,它会打击“No Such Table”,所以我需要将DATABASE_NAME更改为其他值=“DB2”;然后“Table2”将成功创建并能够提取数据.

所以我的问题是这是确保2个表成功创建的正确方法吗?或者我不应该将表分成两类?请指教

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);
}
}

解决方法:

不,你应该把表放在一个数据库类中.只需确保每当您更改代码以修改表格或添加/删除表格以清除数据或卸载应用程序并再次运行时.您很可能因为添加或修改表而出现“No Such Table”错误,在这种情况下,在您清除数据或卸载应用程序之前,不会再次调用onCreate.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!