如何访问SQLite数据库在Android项目的资源文件夹? [英] How to access sqlite database in the asset folder of an android project?

查看:309
本文介绍了如何访问SQLite数据库在Android项目的资源文件夹?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要帮助使用使用现有的SQLite数据库的机器人。

我把我的SQLite数据库中的/资产/(MyDatabase的),但无法使用它。

我用下面的code。 有时它显示错误无法打开数据库,有的时候节目如无法找到表错误。 当我拔出从DDMS数据库文件,并使用SQLite浏览器中打开它dropes我的表是指我的表不存在了。

所以请帮助我获得怎样的方式,我可以利用我现有的SQLite DATABSE Android中只是读取和礼仪操作。

 私人SQLiteDatabase MyDatabase的;
私人字符串路径=/数据/数据​​/ mypackagename / MyDatabase的;
尝试{
      MyDatabase的= SQLiteDatabase.openDatabase(路径,空,SQLiteDatabase.OPEN_READWRITE);
      光标myDbCursor;
      myDbCursor = MyDataBase.rawQuery(选择用户,从login_master密码,NULL);
      字符串username = myDbCursor.getString(0);
      字符串password = myDbCursor.getString(01);
      Toast.makeText(getBaseContext(),用户名,10).show();
      Toast.makeText(getBaseContext(),密码,10).show();
      MyDataBase.close();
  }
  赶上(SQLiteException E){
      Toast.makeText(getBaseContext(),e.​​getMessage(),10).show();
  }
 

解决方案

不知道,但这个可以帮你

 无效CHECKDB()抛出异常{
    尝试 {
        SQLiteDatabase DBE = SQLiteDatabase
                .openDatabase(
                        /data/data/yourpackagename/databases/yourfilename.sqlite
                        空,0);
        Log.d(opendb,存在);
        dbe.close();
    }赶上(例外五){

        AssetManager AM = getApplicationContext()getAssets()。
        的OutputStream OS =新的FileOutputStream(
                /data/data/yourpackagename/databases/yourfilename.sqlite);
        byte []的B =新的字节[100];

        INT R;
        InputStream的是= am.open(yourfilename.sqlite);
        而((R = is.​​read(二))!=  -  1){
            os.write(B,O,R);
        }
        Log.i(DATABASE_HELPER,复制数据库);
        is.close();
        os.close();
    }

}
 

I need help to use use my existing sqlite database in android.

i am placing my sqlite database in "/assets/(mydatabase)" but unable to use it.

i am using following code. some times it show error "unable to open database" and some times shows error like "can not find table". when i pull out database file from ddms and open it using sqlite browser it dropes my table means my table do not exist any more.

so please help me to get the way how i can use my existing sqlite databse in android just for read and rite operations.

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();
  }

解决方案

not sure but this can help you

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();
    }

}

这篇关于如何访问SQLite数据库在Android项目的资源文件夹?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆