Форум программистов, компьютерный форум CyberForum.ru

SQLiteException: table event has no column named - Android

Восстановить пароль Регистрация
 
Naomis
4 / 4 / 1
Регистрация: 11.03.2015
Сообщений: 188
Завершенные тесты: 1
11.04.2015, 22:41     SQLiteException: table event has no column named #1
Доброго времени суток. Проблема такова, лог выдаёт ошибку "SQLiteException: table event has no column named". Не могу понять в чём именно проблема.

Функция добавления данных в БД.
Java
1
2
3
4
5
6
7
8
9
10
11
12
    // добавить запись в TABLE
    public void addRec(String name_table, String name_column, String txt) {
        ContentValues cv = new ContentValues();
        cv.put(name_column, txt);
        mDB.insert(name_table, null, cv);
    }
    //Перегружение функции(для int)
    public void addRec(String name_table, String name_column, int txt) {
        ContentValues cv = new ContentValues();
        cv.put(name_column, txt);
        mDB.insert(name_table, null, cv);
    }
И её использование в активити
Java
1
2
3
4
5
6
7
8
9
10
11
Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_MAN, cManID ); ---" );
                    db.addRec("event", "ManId", cManID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_MEETING, cMeetID ); ---" );
                    db.addRec("event", "MeetingId", cMeetID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec(\"event\", DB.EVENT_COLUMN_EVENT_TYPE, cETID ); ---" );
                    db.addRec("event", "EventTypeId", cETID );
                    Log.v(TAG, "ОК" );
Сам лог пестрит краснотой выписывая нечто подобное "SQLiteException: table event has no column named MeetingId (code 1): , while compiling: INSERT INTO event(MeetingId) VALUES (?)".

Сам Лог.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
04-11 21:03:00.589    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MAN, cManID ); ---
04-11 21:03:00.609    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 21:03:00.609    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID ); ---
04-11 21:03:00.609    8172-8172/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named MeetingId
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting MeetingId=1
    android.database.sqlite.SQLiteException: table event has no column named MeetingId (code 1): , while compiling: INSERT INTO event(MeetingId) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:133)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID ); ---
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named EventTypeId
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting EventTypeId=1
    android.database.sqlite.SQLiteException: table event has no column named EventTypeId (code 1): , while compiling: INSERT INTO event(EventTypeId) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:137)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ЧЕКБОКСИКА ---- ---
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg E/SQLiteLog﹕ (1) table event has no column named Value
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg E/SQLiteDatabase﹕ Error inserting Value=0
    android.database.sqlite.SQLiteException: table event has no column named Value (code 1): , while compiling: INSERT INTO event(Value) VALUES (?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1475)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1347)
            at com.example.kirukato.coolstdreg.DB.addRec(DB.java:112)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:149)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
04-11 21:03:00.619    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК---0
А главное и поразительное для меня то, что первую запись он пропускает или по крайней мере на неё не ругается.
Prolog
1
2
3
04-11 21:03:00.589    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MAN, cManID ); ---
04-11 21:03:00.609    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ОК
04-11 21:03:00.609    8172-8172/com.example.kirukato.coolstdreg V/EVENT__ACTIVITY﹕ ЗАПИСЬ В ТАБЛИЦУ ---- db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID ); ---
Не могу понять в чём проблема, по этому и обращаюсь в заранее спасибо.

Добавлено через 44 минуты
Добавил вывод на консоль в программу по нажатию кнопки
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
btnEvent  = (Button) findViewById(R.id.log_log_log);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
 
                Log.d(TAG, "--- Rows in event: ---");
                // делаем запрос всех данных из таблицы , получаем Cursor
                //Cursor c = db.query("event", null, null, null, null, null, null);
                Cursor c = db.getAllData("event");
 
                if (c.moveToFirst()) {
                    int idColID = c.getColumnIndex(DB.EVENT_COLUMN_ID);
                    int idColMAN = c.getColumnIndex(DB.EVENT_COLUMN_MAN);
                    int idColMEETING = c.getColumnIndex(DB.EVENT_COLUMN_MEETING);
                    int idColET = c.getColumnIndex(DB.EVENT_COLUMN_EVENT_TYPE);
                    int idColVALUE = c.getColumnIndex(DB.EVENT_COLUMN_VALUE);
 
                    do {
                        // получаем значения по номерам столбцов и пишем все в лог
                        Log.d(TAG,
                                "ID = " + c.getInt(idColID) +
                                        ", MAN = " + c.getInt(idColMAN) +
                                        ", MEETING = " + c.getInt(idColMEETING) +
                                        ", EVENT TYPE = " + c.getInt(idColET) +
                                        ", VALUE = " + c.getInt(idColVALUE));
                        // переход на следующую строку
                        // а если следующей нет (текущая - последняя), то false - выходим из цикла
                    } while (c.moveToNext());
                } else {
                    Log.d(TAG, "0 rows");
                }
                    }
       });
Вот что пишет лог:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
04-11 21:54:30.025  13334-13334/com.example.kirukato.coolstdreg D/EVENT__ACTIVITY﹕ --- Rows in event: ---
04-11 21:54:30.025  13334-13334/com.example.kirukato.coolstdreg E/CursorWindow﹕ Failed to read row 0, column -1 from a CursorWindow which has 168 rows, 2 columns.
04-11 21:54:30.025  13334-13334/com.example.kirukato.coolstdreg D/AndroidRuntime﹕ Shutting down VM
04-11 21:54:30.025  13334-13334/com.example.kirukato.coolstdreg W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4154d8b0)
04-11 21:54:30.025  13334-13334/com.example.kirukato.coolstdreg E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
            at android.database.CursorWindow.nativeGetLong(Native Method)
            at android.database.CursorWindow.getLong(CursorWindow.java:507)
            at android.database.CursorWindow.getInt(CursorWindow.java:574)
            at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:69)
            at com.example.kirukato.coolstdreg.EventActivity$1.onClick(EventActivity.java:92)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
Лог указывает на строчку "EventActivity.java:92", что в свою очередь ", MEETING = " + c.getInt(idColMEETING) +
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2015, 22:41     SQLiteException: table event has no column named
Посмотрите здесь:

Column does not belong to referenced table.
OnLongTouch() event Android
Java БД Неверные спецификации для user.table.column
C# Ошибка после подключения к БД "The column prefix 'Included' does not match with a table name"
Cannot modify a column which maps to a non key-preserved table, insert into Oracle
Android как правильно раставить кнопки в Table Row?
ActionScript Событие Event.COPY Event.PASTE Event.CUT
SQLiteException: not an error Android
Multi select from same table and column PHP
Последствия не указания файла описания ДНС серверов named.ca в named.conf для Bind Linux
C# Cannot insert the value NULL into column 'Id', table '.dbo.Records';column does not allow nulls
Table layout с фиксированной шапкой Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vindigo
18 / 18 / 3
Регистрация: 15.05.2014
Сообщений: 77
12.04.2015, 07:26     SQLiteException: table event has no column named #2
Такое ощущение, что у вас в базе в таблице "event" всего одно поле - "ManId", базу как создавали?
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.04.2015, 10:29     SQLiteException: table event has no column named #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Naomis, "Attempt to re-open an already-closed object" при работе с SQLite
Yandex
Объявления
12.04.2015, 10:29     SQLiteException: table event has no column named
Ответ Создать тему
Опции темы

Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru