2015-05-25 5 views
0

вот мой код для выбора что-то из таблицы SqliteTmp:SQLiteException: нет такой таблицы:

Cursor c=null; 
        DataBaseHelper myDbHelper = new DataBaseHelper(StaffActivity.this); 
        try { 
         myDbHelper.createDataBase(); 
        } catch (IOException ioe) { 
         throw new Error("Unable to create database"); 
        } 
        try { 
         myDbHelper.openDataBase(); 

        }catch(SQLException sqle){ 

         throw sqle; 
        } 
        Toast.makeText(StaffActivity.this, "Success", Toast.LENGTH_SHORT).show(); 
        c=myDbHelper.query("SqliteTmp", null, null, null, null,null, null); 
        if(c.moveToFirst()) 
        { 
         do { 

          Toast.makeText(StaffActivity.this, 
            "_id: " + c.getString(0) + "\n", 
            Toast.LENGTH_LONG).show(); 
         } while (c.moveToNext()); 
        } 
       } 

Logcat говорит, что это:

android.database.sqlite.SQLiteException: no such table: SqliteTmp (code 1): , while compiling: SELECT * FROM SqliteTmp 

но SqlTmp.db показывает, что:

CREATE TABLE `SqliteTmp` (
    `_id` int(11) NOT NULL, 
    `ean` varchar(12) NOT NULL, 
    `bezeichnung` varchar(100) NOT NULL, 
    `art` varchar(1), 
    `stammkost` varchar(4), 
    `marker` varchar(1), 
    PRIMARY KEY(_id) 
); 

Почему таблица SqliteTmp не найдена? Это действительно в нем.

+0

Пожалуйста, взгляните на мой ответ. Это может иметь сходную проблему с созданием вашей таблицы. Http://stackoverflow.com/questions/29986355/android-sqlite-insert-not-inserting/29987400#29987400 –

ответ

0

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

+0

Я изменился с DB_PATH = "/ data/data /" + context. getPackageName() + "/" + "базы данных /"; к DB_PATH = "/ Android/data/eu.straff/files/databases /"; и теперь Logcat: 05-25 19: 44: 33.722 18252-18252/eu.straff E/SQLiteDatabase: Не удалось открыть базу данных '/Android/data/eu.straff/files/databases/SqliteTmp.db'. android.database.sqlite.SQLiteCantOpenDatabaseException: неизвестная ошибка (код 14): не удалось открыть базу данных – Piet

+0

'05-25 19: 51: 06.212 22712-22712/eu.straff E/SQLiteLog: (14) не может открыть файл по строке 30192 of [00bb9c9ce4] 05-25 19: 51: 06.212 22712-22712/eu.straff E/SQLiteLog: (14) os_unix.c: 30192: (2) open (/ storage/emulated/0/Android/data/eu .straff/files/databases/SqliteTmp.dbSqliteTmp.db) - 05-25 19: 51: 06.232 22712-22712/eu.straff E/SQLiteDatabase: Не удалось открыть базу данных '/ storage/emulated/0/Android/data/eu.straff/файлов/баз данных/SqliteTmp.dbSqliteTmp.db». android.database.sqlite.SQLiteCantOpenDatabaseException: неизвестная ошибка (код 14): не удалось открыть базу данных. – Piet

+0

Вы открываете уже существующую базу данных или создаете ее в своем приложении? Если вы открываете существующую базу данных, вам нужно скопировать ее из папки с вашими ресурсами в новую базу данных, а не просто ее открыть. –

1

Думаю, у меня такая же проблема. Пожалуйста, убедитесь, что у вас есть имя для каждой таблицы. Это решительно решает вашу проблему.

+0

У меня только 1 в базе данных – Piet

Смежные вопросы