android – SQLite DB的版本号

前端之家收集整理的这篇文章主要介绍了android – SQLite DB的版本号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在我的 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,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,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的sql代码代码,sqliteOpenHelper,在这里似乎db版本应该是0的onCreate函数,我想这可能是以另一种方式在您正在测试的版本上实现的.
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/database/sqlite/SQLiteOpenHelper.java#242

猜你在找的Android相关文章