Получать данные из внешней собственной базы данных SQLite - PullRequest
0 голосов
/ 08 июня 2011

У меня есть собственная база данных, которая содержит http://i55.tinypic.com/6i8861.jpg (SQLiteBrowser) У меня есть этот код, который копирует базу данных из папки ресурсов ресурса в системную директорию data/data/package/files http://pastebin.com/XeNGmrcD, и вот как это реализовано в onCreate () http://pastebin.com/TigXFStF, и это изображение где test.sqlite помещается в системную директорию эмулятора и появляется ошибка, которую я получаю при выполнении запроса ниже: http://i51.tinypic.com/2mxrk0p.jpg

cursor = dbObj.getReadableDatabase().query(TABLE_NAME, null, null, null, null, null, null);

Я понял, что курсор нулевой, поскольку таблица не найдена. Если я выполню тот же запрос, эквивалентный приведенному выше (SELECT * FROM gradovi) в браузере SQLite. Я получаю результаты, а здесь нет. Скажите, пожалуйста, как я могу получить данные из моей базы данных? Что я делаю не так? Также я хочу знать, как перебирать записи?

Ответы [ 3 ]

2 голосов
/ 09 июня 2011

Похоже, что копирование файла базы данных не удается.Ваш код имеет ряд проглоченных исключений, поэтому вы можете не видеть возникающих ошибок.

Обратите внимание, что попытка поставить приложение с предварительно созданным файлом базы данных SQLite сопряжена с подводными камнями, включая различные пути иразличные версии SQLite.

1 голос
/ 17 ноября 2012
((Button)findViewById(R.id.button01)).setOnClickListener(
new View.OnClickListener(){

    @Override
    public void onClick(View v) {
        DatabaseHelper myDbHelper = new DatabaseHelper(CopyDbActivity.this);
        try{
            myDbHelper.createDataBase();
        }catch (IOException ioe) {
            throw new Error("Unable to create database");
        }

        try {                
            myDbHelper.openDataBase();
        }catch(SQLException sqle){
            throw sqle;
        }

        Toast.makeText(CopyDbActivity.this, "Success", Toast.LENGTH_SHORT).show();

        c=myDbHelper.query("EMP_TABLE", null, null, null, null,null, null);
        if(c.moveToFirst()){
            do {
                Toast.makeText(CopyDbActivity.this,
                "_id: " + c.getString(0) + "\n" +
                "E_NAME: " + c.getString(1) + "\n" +
                "E_AGE: " + c.getString(2) + "\n" +
                "E_DEPT:  " + c.getString(3),
                Toast.LENGTH_LONG).show();
            } while (c.moveToNext());
        }
    }
});



}
0 голосов
/ 09 июня 2011

Насколько я понимаю, местом назначения должно быть "/data/data/PackageName/databases/mydatabase".

Вы также можете получить помощь от http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

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