1

Androidで既存のsqliteデータベースを使用するには助けが必要です。

sqlite データベースを "/assets/(mydatabase)" に配置していますが、使用できません。

私は次のコードを使用しています。「データベースを開けません」というエラーが表示されることもあれば、「テーブルが見つかりません」などのエラーが表示されることもあります。ddms からデータベース ファイルを取り出して sqlite ブラウザーを使用して開くと、テーブルが削除され、テーブルがもう存在しないことを意味します。

したがって、読み取り操作と儀式操作のためだけに、既存の sqlite データベースを Android で使用する方法を教えてください。

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

2 に答える 2

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

}
于 2012-08-03T18:20:48.323 に答える
0

複製: SQLite Android . データベースファイルを開くことができません

于 2012-08-03T18:31:24.777 に答える