我正在我的Android应用程序中使用sqlite.
我正在做 db.getVersion()我的数据库的当前版本.
它3在logcat中显示 .
甚至在构造函数中我设置4为版本号.
public Helper(Context context)
{
super(context, DATABASE_NAME, null,4);
}
Run Code Online (Sandbox Code Playgroud)
我给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());
}
Run Code Online (Sandbox Code Playgroud)
Raa*_*nan 19
您正在检查onCreate函数中的版本号,为什么?只应在第一次从头创建数据库时调用OnCreate函数,在这种情况下,它应该构建数据库,因为您需要适合您正在使用的版本.
您是否可以在创建数据库之后尝试检查数据库版本,并且要求获取可读或可写的实例?
SQLiteDatabase db = new Helper(context).getWritableDatabase();
db.getVersion(); // what value do you get here?
Run Code Online (Sandbox Code Playgroud)
查看android 4.1.1 SQLiteOpenHelper的源代码,这里似乎db版本应该在onCreate函数中为0,我想它可能是以你正在测试的版本的另一种方式实现的. http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/database/sqlite/SQLiteOpenHelper.java#242
| 归档时间: |
|
| 查看次数: |
23086 次 |
| 最近记录: |