Ошибка открытия базы данных sqlite - PullRequest
1 голос
/ 25 февраля 2010

Я помещаю файл базы данных sqlite в папку «assets» и пишу запрос DAO для получения данных из базы данных, но информация из log.e означает, что я не могу открыть базу данных.

открытый класс GetData {

 private static String DB_PATH = "/data/data/com.SGMalls/databases/mallMapv2.sqlite";

private static SQLiteDatabase myDataBase;

public static ArrayList<Mall> getMall(){

   ArrayList<Mall> mallArrayList=new ArrayList<Mall>();

    String queryString="select id,title from malls order by title";

    myDataBase = SQLiteDatabase.openDatabase(DB_PATH,      null,SQLiteDatabase.OPEN_READONLY);

    Cursor cursor=myDataBase.rawQuery(queryString, null);

  if(cursor!=null){

    cursor.moveToFirst();

    while(!cursor.isLast()){

     Mall mall=new Mall();

     mall.setMallid(cursor.getInt(0));

     mall.setMallname(cursor.getString(1));            
    mallArrayList.add(mall);
cursor.moveToNext();
   } }
 myDataBase.close();

 return mallArrayList;

}}

Ответы [ 2 ]

1 голос
/ 25 февраля 2010

Посмотрите на эту ссылку .

Сначала вам нужно будет вызвать createDataBase() метод. Если createDataBase() запущен успешно, вы можете проверить, действительно ли присутствует /data/data/com.SGMalls/databases/mallMapv2.sqlite.

Если оно уже существует, оно не причинит ему никакого вреда.

copyDataBase() должен дать вам некоторые объяснения о том, как он копирует из активов в ../databases/..

1 голос
/ 25 февраля 2010

Папка assets/ напрямую не связана с базами данных. Если вы поместите базу данных в папку assets/, вам необходимо скопировать ее из папки assets/ туда, где вы хотите разместить базу данных в фактической файловой системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...