gpt4 book ai didi

android - SQLite 数据库的版本号

转载 作者:IT王子 更新时间:2023-10-29 06:20:25 27 4
gpt4 key购买 nike

我正在我的 android 应用程序中使用 sqlite。

我正在执行 db.getVersion() 以获取我的数据库的当前版本。

它在 logcat 中显示 3

即使在构造函数中,我也将 4 设置为版本号。

public Helper(Context context)
{
super(context, DATABASE_NAME, null,4);
}

我给 4 它应该以 4 作为版本号。

但它的行为不是这样的。它显示 3 作为版本号。

请提出任何建议。

更新:-

    public class Helper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "helper.db";

public static final String TITLE = "title";
public static final String AUTHOR = "author";
public static final String ISBN = "isbn";

public Helper(Context context)
{
super(context, DATABASE_NAME, null,4);
}

@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL( "CREATE TABLE book1(_id INTEGER PRIMARY KEY AUTOINCREMENT,title TEXT, author TEXT,isbn INTEGER);");
Log.v("Create Table", "CREATE TABLE book1(_id INTEGER PRIMARY KEY AUTOINCREMENT,title TEXT, author TEXT,isbn INTEGER);");

Log.v("version ", "Version number is "+db.getVersion());

}

最佳答案

您在 onCreate 函数中检查版本号,为什么? OnCreate 函数应该只在第一次从头创建数据库时调用,在这种情况下,它应该根据您的需要构建数据库以适应您正在使用的版本。

您能否在创建数据库并请求获取它的可读或可写实例后尝试检查数据库版本?

SQLiteDatabase db = new Helper(context).getWritableDatabase();
db.getVersion(); // what value do you get here?

查看android 4.1.1 SQLiteOpenHelper的源代码,这里似乎在onCreate函数中db版本应该是0,我猜它可能在你正在测试的版本上以另一种方式实现。 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/database/sqlite/SQLiteOpenHelper.java#242

关于android - SQLite 数据库的版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14644458/

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