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

Ошибка при добавлении в базу данных - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Загрузить форма из базы данных(база находится на ПК) и вывести на экран. http://www.cyberforum.ru/android-dev/thread931158.html
Нужно чтобы при нажатии на кнопку(в приложении на телефоне) загружалась форма из базы данных(база находится на ПК) и выводилась на экран. Можно ли это реализовать и с помощью каких методов?
Программирование Android Загрузка файла из сети, и его выполнение Здравсвуйте, пытаюсь загрузить файл из сети (это файл приложения *.apk), и после загрузки сразу его запустить. Вот то что накодил, тут есть ошибка в onPostExecute(), в setData()... До этого пробовал передать file в интент, но нифига не вышло, ошибка вылетала... Посмотрите, что тут надо подправить? private void downloadFile(String url) { final ProgressDialog progressDialog = new... http://www.cyberforum.ru/android-dev/thread931114.html
Программирование Android Борьба с фоновой музыкой
Моя задача - добавить в игру фоновую музыку. Пробовала http://www.cyberforum.ru/android-dev/thread868122.html так и http://stackoverflow.com/questions/16336960/android-playing-music-in-background так (то, что в ответах). В первом случае - не играет. Во втором долго пробовала, но: 1)либо лажа с наложением музыки 2)либо не перестаёт играть при выходе из игры 3)либо приложение выкидывает при...
Программирование Android Проигрывание музыки по очереди
Есть список треков, как проиграть их поочереди. Использую MediaPlayer и MediaPlayer.OnCompletionListener, но он выполняется когда заканчивается первый трек и все... А как грузить следующие? OnClickListener oclbt_Continue_Ini = new OnClickListener() { @Override public void onClick(View v) { step = 1; fileName = getFileNameSound(step); Play();
Программирование Android Программное добавление View http://www.cyberforum.ru/android-dev/thread931043.html
Доброго времени. Знаю что на эту тему много инфы, как на форуме так и на других ресурсах, но решения своей проблемы все же не нашел. суть вот в чем. есть активити в которую я могу добавлять View в её layout, для этого получаю сам layout: RelativeLayout layout = (RelativeLayout)findViewById(R.id.main); и добавляю свой (раннее созданный) View: layout.addView(testBar,layoutParams); здесь все...
Программирование Android Как обновить значение в ячейке, используя условие? как будет выглядеть условие в андроид на SqLite используя примерный синтаксис: db.update("myDB", newValues, id + "= ?", new String { value }); мне нужно обновить ячейку в столбце "С" где у столбца "А" значение ячейки =(равно) 55 и где у столбца "B" значение ячейки =(равно) 99 подробнее

Показать сообщение отдельно
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596

Ошибка при добавлении в базу данных - Программирование Android

31.07.2013, 00:12. Просмотров 602. Ответов 2
Метки (Все метки)

Здравствуйте!
Я раньше не работал с бд, это мое первое приложение, делал опираясь на урок...
Вот такой код в итоге получился:
Кликните здесь для просмотра всего текста
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
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
package com.contedevel.timetable.db;
 
import java.util.ArrayList;
import java.util.List;
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
public class DatabaseHandler extends SQLiteOpenHelper {
    //Static variables
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "timetableManager";
    public static final String TABLE_NAME = "timetable";
    
    //Timetable's columns
    public static final String KEY_ID          = "_id";
    public static final String KEY_ORDER       = "_order";
    public static final String KEY_WEEK_NUMBER = "_week";
    public static final String KEY_DAY         = "_day";
    public static final String KEY_SUBJECT     = "_subject";
    public static final String KEY_STARTEND    = "_startend";
    public static final String KEY_TEACHER     = "_teacher";
    public static final String KEY_AUDITORY    = "_auditory";
    public static final String KEY_HOMETASK    = "_hometask";
 
    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_ORDER + " INTEGER," + KEY_WEEK_NUMBER + " INTEGER,"
                + KEY_DAY + " TEXT," + KEY_SUBJECT + " TEXT," + KEY_STARTEND + " TEXT," 
                + KEY_TEACHER + " TEXT," + KEY_AUDITORY + " TEXT," + KEY_HOMETASK + " TEXT" + ");";
        db.execSQL(CREATE_TABLE);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        // Drop older table if existed
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
 
        // Create tables again
        onCreate(db);
    }
 
    public void addItem(TimetableItem item) {
        SQLiteDatabase db = this.getWritableDatabase();
        
        ContentValues values = new ContentValues();
        values.put(KEY_ORDER, item.getOrder());
        values.put(KEY_WEEK_NUMBER, item.getWeekNumber());
        values.put(KEY_DAY, item.getDay());
        values.put(KEY_SUBJECT, item.getSubject());
        values.put(KEY_STARTEND, item.getStartEnd());
        values.put(KEY_TEACHER, item.getTeacher());
        values.put(KEY_AUDITORY, item.getAuditory());
        values.put(KEY_HOMETASK, item.getHometask());
        
        db.insert(TABLE_NAME, null, values);
        db.close();
    }
}


Вот вспомогательный класс:
Кликните здесь для просмотра всего текста
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
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package com.contedevel.timetable.db;
 
public class TimetableItem {
    //Variables
    private int _id;
    private int _order;
    private int _week;
    private String _day;
    private String _subject;
    private String _startend;
    private String _teacher;
    private String _auditory;
    private String _hometask;
    
    public TimetableItem () {
        this._id = -1;
        this._order = -1;
        this._week = -1;
        this._day = null;
        this._subject = null;
        this._startend = null;
        this._teacher = null;
        this._auditory = null;
        this._hometask = null;
    }
    
    public TimetableItem (int id, int order, int week, String day, String subject, String startend, String teacher, String auditory, String hometask) {
        this._id = id;
        this._order = order;
        this._week = week;
        this._day = day;
        this._subject = subject;
        this._startend = startend;
        this._teacher = teacher;
        this._auditory = auditory;
        this._hometask = hometask;
    }
    
    public void reset() {
        this._id = -1;
        this._order = -1;
        this._week = -1;
        this._day = null;
        this._subject = null;
        this._startend = null;
        this._teacher = null;
        this._auditory = null;
        this._hometask = null;
    }
    
    public void setID(int id) {
        this._id = id;
    }
    
    public void setOrder(int order) {
        if(order > 0) {
            this._order = order;
        }
        else {
            this._order = -1;
        }
    }
    
    public void setWeekNumber(int number) {
        if(number == 1 || number == 2) {
            this._week = number;
        }
        else {
            this._week = -1;
        }
    }
    
    public void setDay(String day) {
        if(day == "Monday" || day == "Tuesday" || day == "Wednesday"|| day == "Thursday" 
                || day == "Friday" || day == "Saturday" || day == "Sunday") {
            this._day = day;
        }
        else {
            this._day = null;
        }
    }
    
    public void setSubject(String subject) {
        this._subject = subject;
    }
    
    public void setStartEnd(String startend) {
        this._startend = startend;
    }
    
    public void setTeacher(String teacher) {
        this._teacher = teacher;
    }
    
    public void setAuditory(String auditory) {
        this._auditory = auditory;
    }
    
    public void setHometask(String hometask) {
        this._hometask = hometask;
    }
    
    public int getID() {
        return this._id;
    }
    
    public int getOrder() {
        return this._order;
    }
    
    public int getWeekNumber() {
        return this._week;
    }
    
    public String getDay() {
        return this._day;
    }
    
    public String getSubject() {
        return this._subject;
    }
    
    public String getStartEnd() {
        return this._startend;
    }
    
    public String getTeacher() {
        return this._teacher;
    }
    
    public String getAuditory() {
        return this._auditory;
    }
    
    public String getHometask() {
        return this._hometask;
    }
}


Вот диалог, из которого происходит обращение:
Кликните здесь для просмотра всего текста
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
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
package com.contedevel.timetable;
 
import com.contedevel.timetable.db.DatabaseHandler;
import com.contedevel.timetable.db.TimetableItem;
 
import android.app.Dialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
 
public class EditDialog extends Dialog{
    String day;
    String week;
    TimePicker tpStart;
    TimePicker tpEnd;
    TimetableItem item;
    DatabaseHandler db;
    final EditText etSubject;
    final EditText etTeacher;
    final EditText etAuditory;
 
    public EditDialog(Context context, String week, String day) {
        super(context);
        // TODO Auto-generated constructor stub
        this.day = day;
        this.week = week;
        this.setContentView(R.layout.dialog_edit);
        item = new TimetableItem();
        final Button bOk = (Button) findViewById(R.id.bOk);
        etSubject = (EditText) findViewById(R.id.etSubject);
        etTeacher = (EditText) findViewById(R.id.etTeacher);
        etAuditory = (EditText) findViewById(R.id.etAuditory);
        tpStart = (TimePicker) findViewById(R.id.tpStart);
        tpEnd = (TimePicker) findViewById(R.id.tpEnd);
        db = new DatabaseHandler(context);
        //Positive button
        bOk.setText(R.string.create_dialog);
        bOk.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                clickOK();
            }           
        });
    }
    
    private void clickOK () {
        // TODO Auto-generated method stub
        item.setDay(day);
        if(week == "First") {
            item.setWeekNumber(1);
        }
        else {
            item.setWeekNumber(2);
        }
        item.setSubject(etSubject.getText().toString());
        item.setTeacher(etTeacher.getText().toString());
        item.setAuditory(etAuditory.getText().toString());
        item.setStartEnd(tpStart.getCurrentHour().toString() + ":"
                + tpStart.getCurrentMinute().toString() + " - " 
                + tpEnd.getCurrentHour().toString() + ":" + tpEnd.getCurrentMinute().toString());
        item.setHometask("");
        item.setOrder(1);
        db.addItem(item);
    }
 
}


И вот, что получаю в логе:
Кликните здесь для просмотра всего текста
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
07-30 20:09:38.788: E/SQLiteLog(1063): (1) table timetable has no column named _hometask
07-30 20:09:38.908: D/dalvikvm(1063): GC_CONCURRENT freed 229K, 9% free 3741K/4096K, paused 77ms+96ms, total 258ms
07-30 20:09:38.929: E/SQLiteDatabase(1063): Error inserting _week=2 _day=null _hometask= _auditory=193 _subject=russian _order=1 _startend=8:0 - 8:9 _teacher=bondar
07-30 20:09:38.929: E/SQLiteDatabase(1063): android.database.sqlite.SQLiteException: table timetable has no column named _hometask (code 1): , while compiling: INSERT INTO timetable(_week,_day,_hometask,_auditory,_subject,_order,_startend,_teacher) VALUES (?,?,?,?,?,?,?,?)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at com.contedevel.timetable.db.DatabaseHandler.addItem(DatabaseHandler.java:67)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at com.contedevel.timetable.EditDialog.clickOK(EditDialog.java:142)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at com.contedevel.timetable.EditDialog.access$1(EditDialog.java:125)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at com.contedevel.timetable.EditDialog$3.onClick(EditDialog.java:96)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.view.View.performClick(View.java:4204)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.view.View$PerformClick.run(View.java:17355)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.os.Handler.handleCallback(Handler.java:725)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.os.Looper.loop(Looper.java:137)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at android.app.ActivityThread.main(ActivityThread.java:5041)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at java.lang.reflect.Method.invokeNative(Native Method)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at java.lang.reflect.Method.invoke(Method.java:511)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-30 20:09:38.929: E/SQLiteDatabase(1063):     at dalvik.system.NativeStart.main(Native Method)
]

Перепробовал уже кучу вариантов, но так и не могу понять, почему не видит столбец "_hometask"? В чем моя ошибка?
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru