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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
#1

SQLiteException: table event has no column named - Программирование Android

11.04.2015, 22:41. Просмотров 811. Ответов 2
Метки нет (Все метки)

Доброго времени суток. Проблема такова, лог выдаёт ошибку "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) +
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2015, 22:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SQLiteException: table event has no column named (Программирование Android):

SQLiteException: not an error - Программирование Android
Получил такую странную ошибку! Что это значит? Нагуглить по человечески не получилось. Ошибка не критическая (работа с базой дальше...

Cannot insert the value NULL into column 'Id', table '.dbo.Records';column does not allow nulls - C#
Уважаемые, т.к. мой мозг не способен понять, почему вылазит данное исключение, когда я добавляю строку и в ней поле Id - не NULL, надеюсь...

Column does not belong to referenced table. - Firebird/InterBase
Вот такую беду получаю: &quot; INSERT INTO PUT_KATALOGA (P) VALUES ('c');; /*Column does not belong to referenced table. Dynamic SQL...

Multi select from same table and column - PHP
SELECT `tag`, `count` FROM `tags` WHERE `tag` IN (&quot;.implode(',', $tagsArr).&quot;) Пытаюсь сделать вот такой запрос, но он не работает (там...

Неверные спецификации для user.table.column - Java БД
Может кто знает, в каком случае оракловский jdbc - драйвер выбрасывает такое исключение?? java.sql.SQLException: неверные спецификации...

Cannot modify a column which maps to a non key-preserved table, insert into - Oracle
Есть две таблицы: create table slimnicas( s_ID number constraint Ierob_pa PRIMARY KEY, s_nosaukums varchar2(50) constraint...

2
vindigo
18 / 18 / 3
Регистрация: 15.05.2014
Сообщений: 78
12.04.2015, 07:26 #2
Такое ощущение, что у вас в базе в таблице "event" всего одно поле - "ManId", базу как создавали?
1
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.04.2015, 10:29 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Naomis, "Attempt to re-open an already-closed object" при работе с SQLite
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2015, 10:29
Привет! Вот еще темы с ответами:

Последствия не указания файла описания ДНС серверов named.ca в named.conf для Bind - Linux
Добрый день ! Уважаемы коллеги, есть вопрос по ДНС серверу Bind. Обязательно ли прописывать в named.conf корневую зону с указанием...

Ошибка после подключения к БД "The column prefix 'Included' does not match with a table name" - C#
есть файл connection.cs using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; ...

Событие Event.COPY Event.PASTE Event.CUT - ActionScript
Привет я не знаю как написать код в котором текстовое поле реагировало бы на события копирования/вставки/вырезки В справочнике написано,...

Как выпонить AVG(column), последних по дате n значений поля column - MySQL
Задача: выбрать последние по дате 5 значений поля sum, и агрегировать их. Делаю запрос: select sum from table where...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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