gpt4 book ai didi

android - Android 中的 SQLITE 数据库表

转载 作者:行者123 更新时间:2023-11-30 03:33:33 27 4
gpt4 key购买 nike

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

每个表的命名都不一样,我是在程序开始运行后才知道名字的,所以都是动态的。

但是,第一个表已创建,任何新表都不会创建我收到“没有这样的表”错误。

这是我创建表格的方式:

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() + ")");

关于android - Android 中的 SQLITE 数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17009240/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com