我正在设计一个在线考试的应用程序。我使用 SQLite 浏览器创建了一个数据库并将其拉到 Eclipse 中。在模拟器中它的工作正常;它能够检索和存储数据。但是当我将 .apk 文件放在手机上时,问题就来了。在移动设备上,它无法检索现有数据库。我无法将数据库文件与 .apk 文件一起绑定,即使将其放在 assets 文件夹中也是如此。
任何人都可以帮忙吗?
细节:
- 注册模块
- 用户测试模块(显示数据库中的问题)
- 成绩提交模块
我正在设计一个在线考试的应用程序。我使用 SQLite 浏览器创建了一个数据库并将其拉到 Eclipse 中。在模拟器中它的工作正常;它能够检索和存储数据。但是当我将 .apk 文件放在手机上时,问题就来了。在移动设备上,它无法检索现有数据库。我无法将数据库文件与 .apk 文件一起绑定,即使将其放在 assets 文件夹中也是如此。
任何人都可以帮忙吗?
细节:
你是如何查询数据库的?
正确的方法不是在代码中放置一个单独的数据库,而是动态创建一个。例如以下代码:
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSql("/*Put Create Table sqls here*/");
//onCreate will be called only once( when db doesn't exists for application, it creates here with the code)
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
在您的代码中使用这样的数据库助手类。
现在,每当您想查询您的数据库时,您都可以这样做:
dbHelper = new DatabaseHelper(ctx);
db = dbHelper.getWritableDatabase();
//Start querying on db.(if it is not created oncreate() of dbhelper will create it for you.
因此,只需将您的初始 db create/insert 语句放在 dbhelper 的 oncreate() 中