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

Создание базы данных - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не строгий период повтора у AlarmManager http://www.cyberforum.ru/android-dev/thread1490801.html
Здравствуйте. У меня есть такой код long currentTime = System.currentTimeMillis(); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, currentTime + 2*(1000*60),2*(1000*60), pendingIntent); ...
Программирование Android Расстановка фигур в лабиринте Я пишу пакмэна под андроид.Мне надо,разместить пакмэна и монетки в лабиринте,так как они расположены у меня в матрице.Лабиринт я не прописывал,а загрузил картинку с компа.Пакмэн должен двигаться при... http://www.cyberforum.ru/android-dev/thread1490782.html
Как победить подтормаживание при листании ViewPager со списками listview? Программирование Android
Как победить подтормаживание при листании ViewPager со списками listview? если быстро листать (ну или даже не очень быстро), то тормозит, видимо из-за пересоздания фрагмента, есть ли какое-то...
Техническое задание для новичка Программирование Android
Здравствуйте уважаемые андроид разработчики. У меня есть новостной сайт к которому я хочу сделать приложение. Я бы хотел узнать как делают такие приложения. Приложение должно показывать новые...
Программирование Android Написание программы "Таймер" http://www.cyberforum.ru/android-dev/thread1490710.html
Доброе время суток! Совсем недавно начала изучение Java. Сейчас есть острая необходимость в создании таймера под андроид. Работаю с Eclipse. Может, кто сможет помочь с кодом? P.S. гугл и яндекс...
Программирование Android Разработка приложения для удаленного управления windows Помогите найти литературу по данной теме. Заранее благодарен. подробнее

Показать сообщение отдельно
banga_ivan
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 10

Создание базы данных - Программирование Android

30.06.2015, 22:51. Просмотров 472. Ответов 2
Метки (Все метки)

Всем доброго времени суток. Пробую писать программу для Android. Сейчас изучаю SQLite. Когда писал код по примерам все работало. База данных создавалась, данные записывались. Сейчас я модифицировал таблицу для своих нужд. И при создании БД получаю ошибку. Сам разобраться с проблемой не в состоянии. Объясните мне пожалуйста в чем проблема. Код под спойлером.
Кликните здесь для просмотра всего текста
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
package com.smart_wallet.smartwallet.db;
 
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
 
public class DBHelper extends SQLiteOpenHelper implements BaseColumns {
 
    private static final String DATABASE_NAME = "mydb.db";
    private static final int DATABASE_VERSION = 1;
 
    public static final String TABLE_NAME = "History";
 
    public static final String NAME_COLUMN = "name";
    public static final String PRICE_COLUMN = "price";
    public static final String DESCRIPTION_COLUMN = "description";
    public static final String DATE_COLUMN = "date";
    public static final String TYPE_COLUMN = "type";
 
    private static final String CREATE_DATABASE =
            "create table " + TABLE_NAME + " (" + BaseColumns._ID +
                    " integer not null primary key autoincrement, " +
                    NAME_COLUMN + " text not null, " +
                    PRICE_COLUMN + " decimal not null, " +
                    DATE_COLUMN + " text not null, " +
                    TYPE_COLUMN + " integer not null " +
                    DESCRIPTION_COLUMN + " text);";
 
    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
        super(context, name, factory, version, errorHandler);
    }
 
    public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }
 
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_DATABASE);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
    }
}

Кликните здесь для просмотра всего текста

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
package com.smart_wallet.smartwallet.activity;
 
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
 
import com.smart_wallet.smartwallet.R;
import com.smart_wallet.smartwallet.db.DBHelper;
 
 
public class InPutActivity extends AppCompatActivity {
 
    private EditText name;
    private EditText price;
    private EditText description;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.i("InPutActivity", " onCreate ");
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_in_put);
 
 
    }
 
 
    @Override
    protected void onDestroy() {
        Log.i("InPutActivity", " onDestroy ");
 
        super.onDestroy();
    }
 
    private void preparationData() {
        name = (EditText) findViewById(R.id.name);
        price = (EditText) findViewById(R.id.price);
        description = (EditText) findViewById(R.id.description);
 
        if (!name.getText().toString().equals("")) {
 
            if (!price.getText().toString().equals("")) {
 
                new ThreadBD().execute();
 
                Toast toast = Toast.makeText(getApplicationContext(), "Запис додано!", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
 
                finish();
            } else {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Поле \"Вартість\" не може бути пустимм!", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
 
        } else {
            Toast toast = Toast.makeText(getApplicationContext(),
                    "Поле \"Назва\" не може бути пустим!", Toast.LENGTH_LONG);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
        }
    }
 
    class ThreadBD extends AsyncTask<Void, Void, Void> {
        private DBHelper dbHelper;
        private SQLiteDatabase sqLiteDatabase;
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            Toast toast = Toast.makeText(getApplicationContext(),
                    "База даних готова!", Toast.LENGTH_LONG);
            toast.setGravity(Gravity.BOTTOM, 0, 0);
            toast.show();
        }
 
        @Override
        protected Void doInBackground(Void... params) {
            preparationBD();
            saveData();
            return null;
        }
 
        public void preparationBD() {
            dbHelper = new DBHelper(getApplicationContext(), "mydb.db", null, 1);
            sqLiteDatabase = dbHelper.getWritableDatabase();
        }
 
        private void saveData() {
            ContentValues values = new ContentValues();
 
            values.put(dbHelper.NAME_COLUMN, String.valueOf(name));
            values.put(dbHelper.PRICE_COLUMN, Double.valueOf(price.getText().toString()));
            values.put(dbHelper.DESCRIPTION_COLUMN, String.valueOf(description));
            values.put(dbHelper.DATE_COLUMN, "6.30.2015");
            values.put(dbHelper.TYPE_COLUMN, 1);
 
            sqLiteDatabase.insertOrThrow("History", null, values);
        }
    }
 
 
    public void onClick(View view) {
        Log.i("InPutActivity", " onClick ");
 
        switch (view.getId()) {
            case R.id.btnCancel:
                Log.i("InPutActivity", " onClick: btnCancel ");
 
                finish();
                break;
            case R.id.btnAdd:
                Log.i("InPutActivity", " onClick: btnAdd ");
 
                preparationData();
                break;
        }
    }
}


Лог:
Кликните здесь для просмотра всего текста
06-30 22:47:35.959 26352-26402/com.smart_wallet.smartwallet E/SQLiteLog﹕ (1) near "description": syntax error
06-30 22:47:35.962 26352-26402/com.smart_wallet.smartwallet E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
Process: com.smart_wallet.smartwallet, PID: 26352
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: android.database.sqlite.SQLiteException: near "description": syntax error (code 1): , while compiling: create table History (_id integer not null primary key autoincrement, name text not null, price decimal not null, date text not null, type integer not null description text);
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.executeSql(SQLiteDatabase.java:1674)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1605)
at com.smart_wallet.smartwallet.db.DBHelper.onCreate(DBHelper.java:46)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
at com.smart_wallet.smartwallet.activity.InPutActivity$ThreadBD.preparationBD(InPutActivity.java:95)
at com.smart_wallet.smartwallet.activity.InPutActivity$ThreadBD.doInBackground(InPutActivity.java:88)
at com.smart_wallet.smartwallet.activity.InPutActivity$ThreadBD.doInBackground(InPutActivity.java:73)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
************at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
************at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
************at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
************at java.lang.Thread.run(Thread.java:818)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.