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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
REALIST07
Автор FAQ
Автор FAQ
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
#1

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

30.10.2013, 15:11. Просмотров 3511. Ответов 10
Метки нет (Все метки)

Как создать 2 таблицы в бд?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
30.10.2013, 23:25     Создать несколько таблиц в базе данных #2
Цитата Сообщение от REALIST07 Посмотреть сообщение
Как создать 2 таблицы в бд?
Поддерживаю. И вообще можно ли создать 2 таблицы в одной базе SqLite?
REALIST07
Автор FAQ
Автор FAQ
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
30.10.2013, 23:29  [ТС]     Создать несколько таблиц в базе данных #3
Решил проблему, вот этой программой - SQLite Maestro,которая показывает SQL код,и не забывайте заключать имя таблицы в одинарные кавычки!!!
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 415
31.10.2013, 00:26     Создать несколько таблиц в базе данных #4
Цитата Сообщение от REALIST07 Посмотреть сообщение
Как создать 2 таблицы в бд?
Цитата Сообщение от Stylish2013
Поддерживаю. И вообще можно ли создать 2 таблицы в одной базе SqLite?
Цитата Сообщение от REALIST07
Решил проблему, вот этой программой - SQLite Maestro,которая показывает SQL код,и не забывайте заключать имя таблицы в одинарные кавычки!!!
)))))))
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
31.10.2013, 00:55     Создать несколько таблиц в базе данных #5
Цитата Сообщение от REALIST07 Посмотреть сообщение
Решил проблему, вот этой программой - SQLite Maestro,которая показывает SQL код,и не забывайте заключать имя таблицы в одинарные кавычки!!!
А как в коде Android использовать это (использовать 2 таблицы), может приведете пример?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 415
31.10.2013, 01:25     Создать несколько таблиц в базе данных #6
Цитата Сообщение от Stylish2013 Посмотреть сообщение
А как в коде Android использовать это (использовать 2 таблицы), может приведете пример?
Да так же как и одну.
Что интересует? Создание? Соединение?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.10.2013, 02:26     Создать несколько таблиц в базе данных #7
Цитата Сообщение от REALIST07 Посмотреть сообщение
Как создать 2 таблицы в бд?
например, создать дважды по одной.
Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
31.10.2013, 14:22     Создать несколько таблиц в базе данных #8
Вот создание 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
public class DbOpenHelper extends SQLiteOpenHelper {
 
    private static final int DB_VERSION = 1;
    private static final String DB_NAME = "navbase";
 
    public static final String TABLE_NAME = "places";
    public static final String TABLE_NAME2 = "searchHistory";
    public static final String NAME = "name";
    public static final String LAT = "lat";
    public static final String LON = "lon";
    private static final String CREATE_TABLE = "create table " + TABLE_NAME
            + " ( _id integer primary key autoincrement, " + NAME
            + " TEXT NOT NULL unique, " + LAT + " REAL, " + LON + " REAL)";
 
    private static final String CREATE_TABLE2 = "create table " + TABLE_NAME2
            + " ( _id integer primary key autoincrement, " + NAME
            + " TEXT NOT NULL unique)";
 
    public DbOpenHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(CREATE_TABLE);
        sqLiteDatabase.execSQL(CREATE_TABLE2);
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    }
 
}
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
31.10.2013, 14:22     Создать несколько таблиц в базе данных #9
И получается. Мы открываем одно соединение с базой, а работать можем с двумя таблицами, верно?
Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
31.10.2013, 16:19     Создать несколько таблиц в базе данных #10
верно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 17:04     Создать несколько таблиц в базе данных
Еще ссылки по теме:

Подключение к Базе данных скайп for android Android
Не удается подключиться к базе данных Android
Android Подключиться к готовой базе данных
Поиск ближайших магазинов в базе данных Android
Подключение к базе данных Android

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

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

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? А то у меня уже идеи кончились
Yandex
Объявления
12.12.2013, 17:04     Создать несколько таблиц в базе данных
Ответ Создать тему
Опции темы

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