【问题标题】:How to access sqlite database in the asset folder of an android project?如何访问android项目资产文件夹中的sqlite数据库?
【发布时间】:2012-08-04 02:31:24
【问题描述】:

我需要帮助才能在 android 中使用我现有的 sqlite 数据库。

我将我的 sqlite 数据库放在“/assets/(mydatabase)”中但无法使用它。

我正在使用以下代码。 有时它显示错误“无法打开数据库”,有时显示错误如“找不到表”。 当我从 ddms 中提取数据库文件并使用 sqlite 浏览器打开它时,它会删除我的表意味着我的表不再存在。

所以请帮助我了解如何在 android 中使用我现有的 sqlite 数据库仅用于读取和 rite 操作。

private SQLiteDatabase MyDataBase;
private String path="/data/data/mypackagename/mydatabase";
try{
      MyDataBase=SQLiteDatabase.openDatabase(path, null,SQLiteDatabase.OPEN_READWRITE);
      Cursor myDbCursor;
      myDbCursor=MyDataBase.rawQuery("select user,password from login_master", null);
      String username=myDbCursor.getString(0);
      String password=myDbCursor.getString(01);
      Toast.makeText(getBaseContext(), username, 10).show();
      Toast.makeText(getBaseContext(), password, 10).show();
      MyDataBase.close();
  }
  catch(SQLiteException e){
      Toast.makeText(getBaseContext(), e.getMessage(), 10).show();
  }

【问题讨论】:

  • 感谢 pinakin 遇到了问题,这篇文章帮助你 +1 :)

标签: android sqlite


【解决方案1】:

不确定,但这可以帮助你

void checkDB() throws Exception {
    try {
        SQLiteDatabase dbe = SQLiteDatabase
                .openDatabase(
                        "/data/data/yourpackagename/databases/yourfilename.sqlite",
                        null, 0);
        Log.d("opendb", "EXIST");
        dbe.close();
    } catch (Exception e) {

        AssetManager am = getApplicationContext().getAssets();
        OutputStream os = new FileOutputStream(
                "/data/data/yourpackagename/databases/yourfilename.sqlite");
        byte[] b = new byte[100];

        int r;
        InputStream is = am.open("yourfilename.sqlite");
        while ((r = is.read(b)) != -1) {
            os.write(b, 0, r);
        }
        Log.i("DATABASE_HELPER", "Copying the database ");
        is.close();
        os.close();
    }

}

【讨论】:

  • 这确实适用于 Hardik。我错过了在我的代码中复制部分。谢谢
【解决方案2】:
猜你喜欢
  • 2013-07-14
  • 2011-02-06
  • 1970-01-01
  • 2015-07-17
  • 2011-10-01
  • 1970-01-01
  • 2011-01-20
  • 2015-02-11
  • 1970-01-01
相关资源
最近更新 更多