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

Как подключаться к БД из разных активностей? Как создать 2 таблицы? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Проблемы с отображением простой игры под android http://www.cyberforum.ru/android-dev/thread1434108.html
не могу понять, почему лагает простенькая 3д игра на телефоне :cry: вроде все модели совсем низкополигональные, скрипты не особо сложные... что еще может ронять фпс? апк: файл юнити проект: файл...
Программирование Android Как запустить SAX Parser с начала документа? В активити запускаю Sax парсер файла, который скачиваю с сервера. Когда выхожу из активити и возвращаюсь обратно парсер выдает ошибку, так как смотрит на конец файла. Как его вернуть в начало файла? http://www.cyberforum.ru/android-dev/thread1434104.html
Программирование Android Facebook API - парсинг новостей
Хочу в своей мобильном приложении сделать раздел "Новости", а весь контент подтягивать из публичной страницы фейсбука. Зарылся в АПИ фейсбука, уже понял как делать нужный мне GET при помощи explorer,...
Программирование Android Как андроид может измерять уровень шума?
Приложения такие есть, а вот как сделать? Как можно реализовать (хоть бы даже с задержкой по времени)
Программирование Android Не запускаеться эмулятор в androi studio http://www.cyberforum.ru/android-dev/thread1434033.html
Запускаю приложение hello word, ничего в коде не меняла. Запускаю, появляеться эмулятор, 15 минут и больше, кроме надписи android ничего не происходит. в чем проблема? эмулятор как-то не так настроен?
Программирование Android По поводу EditText разблокировка Здравствуйте, не могу понять, блокирую editText следующим образом editText6.setFocusable(false); editText6.setLongClickable(false); editText6.setCursorVisible(false); после разблокирую поле... подробнее

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

Как подключаться к БД из разных активностей? Как создать 2 таблицы? - Программирование Android

29.04.2015, 18:46. Просмотров 361. Ответов 1
Метки (Все метки)

Добрый вечер!
Мучаюсь с таким вопросом. Есть БД, нужно создать 2 таблицы. Одна таблица групп в одной активности, вторая таблица учащихся в другой активности.
Сначала создал 2 активности и в каждой по базе данных.
Java
1
2
3
4
public DBHelper(Context context) {
            // конструктор суперкласса
            super(context, "myDB", null, DB_VERSION);
        }
то есть myDB в одной активности и myDB1 в другой, но как я понимаю, я создал 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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
public class RedactGrupp extends Activity implements OnClickListener {
 
    final String LOG_TAG = "myLogs";
 
    Button btnAdd, btnUpdate, btnDelete, btnRead, btnVivod;
    EditText IDGrupp, NameGrupp, NameFak, NumVivod;
 
    DBHelper dbHelper;
 
    final int DB_VERSION = 24; // версия БД
    final String DROP_TABLE = "DROP TABLE IF EXISTS "+"mygrupp";
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.redact_grupp);
 
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(this);
 
        btnUpdate = (Button) findViewById(R.id.btnUpdate);
        btnUpdate.setOnClickListener(this);
 
        btnDelete = (Button) findViewById(R.id.btnDelete);
        btnDelete.setOnClickListener(this);
 
        btnRead = (Button) findViewById(R.id.btnRead);
        btnRead.setOnClickListener(this);
 
        btnVivod = (Button) findViewById(R.id.btnVivod);
        btnVivod.setOnClickListener(this);
 
        IDGrupp = (EditText) findViewById(R.id.IDGrupp);
        NameGrupp = (EditText) findViewById(R.id.NameGrupp);
        NameFak = (EditText) findViewById(R.id.NameFak);
        NumVivod = (EditText) findViewById(R.id.NumVivod);
 
 
        // создаем объект для создания и управления версиями БД
        dbHelper = new DBHelper(this);
 
        // Описание курсора
        Cursor c;
    }
 
    public void onClick(View v) {
 
        // создаем объект для данных
        ContentValues cv = new ContentValues();
 
        // получаем данные из полей ввода
        String namegrupp = NameGrupp.getText().toString();
        String namefak = NameFak.getText().toString();
        String id = IDGrupp.getText().toString();
 
        // подключаемся к БД
 
        SQLiteDatabase db = dbHelper.getWritableDatabase();
 
        switch (v.getId()) {
            case R.id.btnAdd:
                Log.d(LOG_TAG, "--- Insert in mygrupp: ---");
                // подготовим данные для вставки в виде пар: наименование столбца -
                // значение
                cv.put("id", id);
                cv.put("namegrupp", namegrupp);
                cv.put("namefak", namefak);
 
                // вставляем запись и получаем ее ID
                long rowID = db.insert("mygrupp", null, cv);
                Log.d(LOG_TAG, "row inserted, ID = " + rowID);
                break;
            case R.id.btnRead:
                Log.d(LOG_TAG, "--- Rows in mygrupp: ---");
                // делаем запрос всех данных из таблицы mytable, получаем Cursor
                Cursor c = db.query("mygrupp", null, null, null, null, null, null);
 
                // ставим позицию курсора на первую строку выборки
                // если в выборке нет строк, вернется false
                if (c.moveToFirst()) {
 
                    // определяем номера столбцов по имени в выборке
                    int idColIndex = c.getColumnIndex("id");
                    int gruppColIndex = c.getColumnIndex("namegrupp");
                    int fakColIndex = c.getColumnIndex("namefak");
 
                    do {
                        // получаем значения по номерам столбцов и пишем все в лог
                        Log.d(LOG_TAG,
                                "ID = " + c.getInt(idColIndex) + ", namegrupp = "
                                        + c.getString(gruppColIndex) + ", namefak = "
                                        + c.getString(fakColIndex));
 
                        // переход на следующую строку
                        // а если следующей нет (текущая - последняя), то false -
                        // выходим из цикла
                    } while (c.moveToNext());
                } else
                    Log.d(LOG_TAG, "0 rows");
                c.close();
                break;
            case R.id.btnDelete:
                Log.d(LOG_TAG, "--- Clear mygrupp: ---");
                // удаляем все записи
                int clearCount = db.delete("mygrupp", null, null);
                Log.d(LOG_TAG, "deleted rows count = " + clearCount);
                break;
            case R.id.btnUpdate:
                if (id.equalsIgnoreCase("")) {
                    break;
                }
                Log.d(LOG_TAG, "--- Update mygrupp: ---");
                // подготовим значения для обновления
                cv.put("id", id);
                cv.put("namegrupp", namegrupp);
                cv.put("namefak", namefak);
                // обновляем по id
                int updCount = db.update("mygrupp", cv, "id = ?",
                        new String[] { id });
                Log.d(LOG_TAG, "updated rows count = " + updCount);
                break;
            case R.id.btnDel:
                if (id.equalsIgnoreCase("")) {
                    break;
                }
                Log.d(LOG_TAG, "--- Delete from mygrupp: ---");
                // удаляем по id
                int delCount = db.delete("mygrupp", "id = " + id, null);
                Log.d(LOG_TAG, "deleted rows count = " + delCount);
                break;
        }
        // закрываем подключение к БД
        dbHelper.close();
    }
 
    class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context) {
            // конструктор суперкласса
            super(context, "myDB", null, DB_VERSION);
        }
 
        public void onCreate(SQLiteDatabase db) {
            Log.d(LOG_TAG, "--- onCreate database ---");
            // создаем таблицу с полями
            // создаем таблицу с полями
            db.execSQL("create table mygrupp ("
                    + "id integer primary key autoincrement,"
                    + "namegrupp text,"
                    + "namefak text"+ " )");
 
        /*    // создаем таблицу с полями
            db1.execSQL("create table mytable ("
                    + "id integer primary key autoincrement,"
                    + "name text,"
                    + "family text,"
                    + "birthday text,"
                    + "gruppa text"+ ")");*/
        }
 
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL(DROP_TABLE);
            onCreate(db);
        }
    }
}


Вот класс активити студентов.
Кликните здесь для просмотра всего текста
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
public class RedactStudentov extends Activity implements OnClickListener {
 
    final String LOG_TAG = "myLogs";
 
    Button btnAdd, btnRead, btnClear, btnUpd, btnDel;
    EditText etName, etFamily, etID, etDR, etGruppa;
 
    DBHelper dbHelper;
 
    final int DB_VERSION = 24; // версия БД
    final String DROP_TABLE = "DROP TABLE IF EXISTS "+"mytable";
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.redact_studentov);
 
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(this);
 
        btnRead = (Button) findViewById(R.id.btnRead);
        btnRead.setOnClickListener(this);
 
        btnClear = (Button) findViewById(R.id.btnClear);
        btnClear.setOnClickListener(this);
 
        btnUpd = (Button) findViewById(R.id.btnUpd);
        btnUpd.setOnClickListener(this);
 
        btnDel = (Button) findViewById(R.id.btnDel);
        btnDel.setOnClickListener(this);
 
        etName = (EditText) findViewById(R.id.etName);
        etFamily = (EditText) findViewById(R.id.etFamily);
        etID = (EditText) findViewById(R.id.etID);
        etDR = (EditText) findViewById(R.id.etDR);
        etGruppa = (EditText) findViewById(R.id.etGruppa);
 
 
        // создаем объект для создания и управления версиями БД
        dbHelper = new DBHelper(this);
    }
 
    public void onClick(View v) {
 
        // создаем объект для данных
        ContentValues cv = new ContentValues();
 
        // получаем данные из полей ввода
        String name = etName.getText().toString();
        String family = etFamily.getText().toString();
        String id = etID.getText().toString();
        String birthday = etDR.getText().toString();
        String gruppa = etGruppa.getText().toString();
 
 
 
        // подключаемся к БД
        SQLiteDatabase db = dbHelper.getWritableDatabase();
 
        switch (v.getId()) {
            case R.id.btnAdd:
                Log.d(LOG_TAG, "--- Insert in mytable: ---");
                // подготовим данные для вставки в виде пар: наименование столбца -
                // значение
                cv.put("name", name);
                cv.put("family", family);
                cv.put("birthday", birthday);
                cv.put("gruppa", gruppa);
 
                // вставляем запись и получаем ее ID
                long rowID = db.insert("mytable", null, cv);
                Log.d(LOG_TAG, "row inserted, ID = " + rowID);
                break;
            case R.id.btnRead:
                Log.d(LOG_TAG, "--- Rows in mytable: ---");
                // делаем запрос всех данных из таблицы mytable, получаем Cursor
                Cursor c = db.query("mytable", null, null, null, null, null, null);
 
                // ставим позицию курсора на первую строку выборки
                // если в выборке нет строк, вернется false
                if (c.moveToFirst()) {
 
                    // определяем номера столбцов по имени в выборке
                    int idColIndex = c.getColumnIndex("id");
                    int nameColIndex = c.getColumnIndex("name");
                    int familyColIndex = c.getColumnIndex("family");
                    int birthdayColIndex = c.getColumnIndex("birthday");
                    int gruppaColIndex = c.getColumnIndex("gruppa");
 
                    do {
                        // получаем значения по номерам столбцов и пишем все в лог
                        Log.d(LOG_TAG,
                                "ID = " + c.getInt(idColIndex) + ", name = "
                                        + c.getString(nameColIndex) + ", family = "
                                        + c.getString(familyColIndex) + ", birthday = "
                                        + c.getString(birthdayColIndex) + ", gruppa = "
                                        + c.getString(gruppaColIndex));
 
                        // переход на следующую строку
                        // а если следующей нет (текущая - последняя), то false -
                        // выходим из цикла
                    } while (c.moveToNext());
                } else
                    Log.d(LOG_TAG, "0 rows");
                c.close();
                break;
            case R.id.btnClear:
                Log.d(LOG_TAG, "--- Clear mytable: ---");
                // удаляем все записи
                int clearCount = db.delete("mytable", null, null);
                Log.d(LOG_TAG, "deleted rows count = " + clearCount);
                break;
            case R.id.btnUpd:
                if (id.equalsIgnoreCase("")) {
                    break;
                }
                Log.d(LOG_TAG, "--- Update mytabe: ---");
                // подготовим значения для обновления
                cv.put("name", name);
                cv.put("family", family);
                cv.put("birthday", birthday);
                cv.put("gruppa", gruppa);
                // обновляем по id
                int updCount = db.update("mytable", cv, "id = ?",
                        new String[] { id });
                Log.d(LOG_TAG, "updated rows count = " + updCount);
                break;
            case R.id.btnDel:
                if (id.equalsIgnoreCase("")) {
                    break;
                }
                Log.d(LOG_TAG, "--- Delete from mytabe: ---");
                // удаляем по id
                int delCount = db.delete("mytable", "id = " + id, null);
                Log.d(LOG_TAG, "deleted rows count = " + delCount);
                break;
        }
        // закрываем подключение к БД
        dbHelper.close();
    }
 
    class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context) {
            // конструктор суперкласса
            super(context, "myDB", null, DB_VERSION);
        }
 
        public void onCreate(SQLiteDatabase db) {
            Log.d(LOG_TAG, "--- onCreate database ---");
            // создаем таблицу с полями
            db.execSQL("create table mytable ("
                    + "id integer primary key autoincrement,"
                    + "name text,"
                    + "family text,"
                    + "birthday text,"
                    + "gruppa text"+ ")");
 
            db.execSQL("create table mygrupp ("
                    + "id integer primary key autoincrement,"
                    + "namegrupp text,"
                    + "namefak text"+ " )");
 
 
 
        }
 
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL(DROP_TABLE);
            onCreate(db);
        }
    }
 
}


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