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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Скрин-логгер http://www.cyberforum.ru/android-dev/thread1418708.html
Здравствуйте. Начал изучать разработку приложений под Android, взял на свою голову тему курсовой "хранение координат нажатий на экран пользователем". И вот я столкнулся с проблемой реализации. Мне...
Программирование Android Ratingbar <RatingBar android:id="@+id/environmentRating" android:layout_width="wrap_content" android:layout_height="wrap_content" ... http://www.cyberforum.ru/android-dev/thread1418707.html
Ответить и сбросить звонок в >4.0 Программирование Android
Собственно это и есть вопрос... 1) Возможно ли такое? Хотя-бы видели программы которые подобное делают. Если да - скиньте названия/ссылки. 2) Можете знаете КАК подобное можно сделать? Находил...
No subject alternative DNS name matching services.gradle.org found Программирование Android
В Android studio Gradle 'Proiekt' project refresh failed Error:No subject alternative DNS name matching services.gradle.org found. че ему не нравится ? Добавлено через 3 часа 26...
Программирование Android Ответ сервера приложению Android Studio: 500 http://www.cyberforum.ru/android-dev/thread1418567.html
Здравствуйте. При создании android приложения, использующего rest api magento столкнулся с проблемой. После процесса авторизации, получения requestToken и обмена его на accessToken, получения...
Программирование Android Добавление таблиц в базу данных Здравствуйте. Хочу добавить ещё одну таблицу в уже существующий файл базы данных. Вот код: public class BookOfLifeDataBaseHelper extends SQLiteOpenHelper implements BaseColumns { //название... подробнее

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

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

11.04.2015, 22:41. Просмотров 813. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru