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

Создать несколько таблиц в базе данных - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Создать 2 таблицы в БД! http://www.cyberforum.ru/android-dev/thread992557.html
Как создать 2 таблицы в бд??? public void onCreate(SQLiteDatabase db) { String query = "CREATE TABLE " + TABLE1_NAME + " (" + COLUMN_COUNTER_ID + " INTEGER PRIMARY KEY...
Программирование Android Организация обновления программы Добрый день! Подскажите, как можно организовать обновление программы на новые версии? Интересуют возможные механизмы. PS в программе встроен механизм обмена бинарными данными через socket и... http://www.cyberforum.ru/android-dev/thread992478.html
Один обработчик для нескольких ImageButton Программирование Android
Есть у меня несколько ImageButton на TableView. На них изображение. Создаю обработчик дерез установку в XML android:onClick. Как можно для всех них использовать один обработчик - получить значение,...
Как мне хранить этап игры? Программирование Android
Доброго времени суток! Мне нужно хранить переменную, которая изначально будет равна нулю и будет запоминаться в памяти, чтобы после дальнейшего запуска начать с того же этапа. Вопрос в том, как...
Программирование Android Директивы препроцессора в JAVA http://www.cyberforum.ru/android-dev/thread992033.html
Скажите, есть ли в JAVA такие директивы, чтобы в каких то условиях компиляция шла по выбранному пути? Погуглин, но не нашел. Вот например, как на С++ Builder: #ifdef DEMOVERSION // // код,...
Программирование Android Bluetooth Broadastreceiver Привет всем. У меня возникла одна проблема. Я программирую Bluetooth приложения и я завис на Broadcastreceiver. Проблема в том когда я начинаю искать другие приборы, мой смартфон показывает... подробнее

Показать сообщение отдельно
Alexander1991
Сообщений: n/a
12.12.2013, 17:04
Всем привет!
У меня возникла следующая проблема: я использовал класс, который указан тремя постами выше (для создания двух таблиц БД). Единственное, что я в нем поменял, это добавил еще один столбец в константу, которая описывает создание второй таблицы, получилось следующее:

Java
1
2
3
private static final String CREATE_TABLE2 = "create table " + TABLE_NAME2
            + " ( _id integer primary key autoincrement, " + NAME
            + " TEXT NOT NULL unique, " + LAT + " TEXT NOT NULL unique)";
В Main Activity я указал, что надо вытаскивать данные из этих двух полей (name и lat) и помещать в соответствующие textview:

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
package com.example.test_bd;
 
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.Menu;
import android.widget.ListView;
import android.widget.TextView;
 
public class MainActivity extends Activity {
    
    private static final String[] FROM = {DbOpenHelper.NAME, DbOpenHelper.LAT};
    private static final int[] TO = { R.id.tvItemGoal, R.id.tvItemDate};
 
    private static final String[] PROJECTION = { "_id", DbOpenHelper.NAME, DbOpenHelper.LAT};
    
    TextView mTvDate;
    SimpleCursorAdapter mAdapter;
    ListView mLvGoals;
    DbOpenHelper mHelper;
    SQLiteDatabase mDb;
    Cursor mCursor;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        mAdapter = new SimpleCursorAdapter(this, R.layout.list_item, null, FROM, TO);
        mLvGoals = (ListView) findViewById(R.id.lv);
        mLvGoals.setAdapter(mAdapter);
    }
 
    @Override
    protected void onStart() {
        super.onStart();
        mHelper = new DbOpenHelper(this);
        mDb = mHelper.getWritableDatabase();
        updateListView();
    }
 
    @Override
    protected void onStop() {
        super.onStop();
        mCursor.close();
        mCursor = null;
        mDb.close();
        mHelper.close();
    }
 
    private void updateListView() {
        if (mCursor != null) {
            mCursor.close();
        }
        mCursor = mDb.query(DbOpenHelper.TABLE_NAME2, PROJECTION, null, null, null,
                null, null);
        mAdapter.changeCursor(mCursor);
        mLvGoals.invalidate();
    }
 
}
Так вот, с первой таблицей все хорошо. Со второй не очень: если я указываю только первый столбец name (в массиве FROM), то все работает. Но если я указываю оба столбца, или только второй столбец (lat), то программа вылетает, а LogCat пишет, что не может найти такой столбец при запросе к БД:

12-12 12:49:49.784: E/AndroidRuntime(329): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test_bd/com.example.test_bd.MainActivity}: android.database.sqlite.SQLiteException: no such column: lat: , while compiling: SELECT _id, lat FROM searchHistory

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