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

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

Войти
Регистрация
Восстановить пароль
 
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
#1

Не работает БД - Программирование Android

08.06.2015, 18:58. Просмотров 211. Ответов 6
Метки нет (Все метки)

У меня 2 экрана на обоих запись в БД в разные таблицы, но когда пытаюсь взять данные, то та таблица в которую я вводил данные последней не работает.

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

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
package com.example.stracking;
 
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
 
public class PredmetP extends Activity implements OnClickListener {
 
    Button btnAdd, btnRead;
    EditText etName, etEmail;
    String[] mName  = new String[0];
    DBHelper dbHelper;
    Cursor c = null;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.predmet);
 
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(this);
 
        btnRead = (Button) findViewById(R.id.btnRead);
        btnRead.setOnClickListener(this);
        
        etName = (EditText) findViewById(R.id.etName);
        etEmail = (EditText) findViewById(R.id.etEmail);
        
        // создаем объект для создания и управления версиями БД
        dbHelper = new DBHelper(this);
    }
 
    @Override
    public void onClick(View v) {
 
        // создаем объект для данных
        ContentValues cv = new ContentValues();
 
        // получаем данные из полей ввода
        String name = etName.getText().toString();
        String email = etEmail.getText().toString();
 
        // подключаемся к БД
        SQLiteDatabase db = dbHelper.getWritableDatabase();
 
        switch (v.getId()) {
        
        case R.id.btnAdd:
 
            cv.put("name", name);
            cv.put("email", email);
            // вставляем запись и получаем ее ID
            db.insert("mypredmet", null, cv);
            etName.setText(null);
            etEmail.setText(null);
            break;
            
        case R.id.btnRead:
 
             // делаем запрос всех данных из таблицы mytable, получаем Cursor
                         c = db.query("mypredmet", null, null, null, null, null, null);
                        // ставим позицию курсора на первую строку выборки
                        // если в выборке нет строк, вернется false
                    ArrayList<String> list = new ArrayList();
                        if (c != null) {
                            if (c.moveToFirst()) {
                                do {
                                    String string = c.getString(c.getColumnIndex("name")) + " " +
                                                c.getString(c.getColumnIndex("email"));
                 
                                    list.add(string);
                            } while (c.moveToNext());
                            c.close();
                        } else
                            Toast.makeText (getApplicationContext(), "Ошибка", Toast.LENGTH_SHORT).show();
                        
                        mName = list.toArray(mName);
                        
                        // находим список
                        ListView lvMain = (ListView) findViewById(R.id.listVtot);
 
                        // создаем адаптер
                        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                            android.R.layout.simple_list_item_1, mName);
 
                        // присваиваем адаптер списку
                        lvMain.setAdapter(adapter);
                        
                        break;
            
            }
            
 
                }
        // закрываем подключение к БД
        dbHelper.close();
        }
 
    class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context) {
            // конструктор суперкласса
            super(context, "myDB", null, 1);
        }
 
        @Override
        public void onCreate(SQLiteDatabase db) {
            // создаем таблицу с полями
            db.execSQL("create table mypredmet ("
                    + "id integer primary key autoincrement," + "name text,"
                    + "email text" + ");");
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
        }
    }
}


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
package com.example.stracking;
 
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
 
public class StudentP extends Activity implements OnClickListener {
 
    Button Add, Read;
    EditText Name, Email;
    String[] nName  = new String[0];
    DBHelper dbHelper;
    Cursor c = null;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.student);
 
        Add = (Button) findViewById(R.id.Add);
        Add.setOnClickListener(this);
 
        Read = (Button) findViewById(R.id.Read);
        Read.setOnClickListener(this);
 
        Name = (EditText) findViewById(R.id.Name);
        Email = (EditText) findViewById(R.id.Email);
        
        // создаем объект для создания и управления версиями БД
        dbHelper = new DBHelper(this);
 
    }
 
    @Override
    public void onClick(View v) {
 
        // создаем объект для данных
        ContentValues cv = new ContentValues();
 
        // получаем данные из полей ввода
        String name = Name.getText().toString();
        String email = Email.getText().toString();
 
        // подключаемся к БД
        SQLiteDatabase db = dbHelper.getWritableDatabase();
 
        switch (v.getId()) {
        
        
        case R.id.Add:
            cv.put("name", name);
            cv.put("email", email);
            db.insert("mystudent", null, cv);
            Name.setText(null);
            break;
            
            
        case R.id.Read:
        
         // делаем запрос всех данных из таблицы mytable, получаем Cursor
                     c = db.query("mystudent", null, null, null, null, null, null);
                    // ставим позицию курсора на первую строку выборки
                    // если в выборке нет строк, вернется false
                ArrayList<String> list = new ArrayList();
                    if (c != null) {
                        if (c.moveToFirst()) {
                            do {
                                String string = c.getString(c.getColumnIndex("name")) + " " +
                                            c.getString(c.getColumnIndex("email"));
             
                                list.add(string);
                        } while (c.moveToNext());
                        c.close();
                    } else
                        Toast.makeText (getApplicationContext(), "Ошибка", Toast.LENGTH_SHORT).show();
                    
                    nName = list.toArray(nName);
                    
                    // находим список
                    ListView Main = (ListView) findViewById(R.id.Vtot);
 
                    // создаем адаптер
                    ArrayAdapter<String> adapterq = new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, nName);
 
                    // присваиваем адаптер списку
                    Main.setAdapter(adapterq);
                    
                    break;
        
        }
            
        // закрываем подключение к БД
        dbHelper.close();
            }
    }
 
        
    class DBHelper extends SQLiteOpenHelper {
 
        public DBHelper(Context context) {
            // конструктор суперкласса
            super(context, "myDB", null, 1);
        }
 
        @Override
        public void onCreate(SQLiteDatabase db) {
            // создаем таблицу с полями
            db.execSQL("create table mystudent ("
                    + "id integer primary key autoincrement," + "name text,"
                    + "email text" + ");");
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
        }
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2015, 18:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает БД (Программирование Android):

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает - Windows 7
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с недавних пор мышь стала работать через раз....

Не работает монитор комп работает а на мониторе нет изображения что делать ? - Компьютерное железо
У меня компьютер старый давно покупал и мне захотелось проверить включается или нет и тут возникла одна проблема не включается монитор (...

AS 3.0 Swf не работает, а в тестовом режиме в самом flash и формате exe работает - ActionScript
Доброго времени суток. Такая проблема: есть рабочий код обмена данными с php скриптам. В тестовом режиме(ctrl+Enter) все работает, при...

Так работает или не работает второй слот для оперативной памяти - Оперативная память
Моему компьютеру уже больше 7-ми лет, купили мне его в сентября 2005 года. На то время очень даже неплохие характеристики: Процессор:...

При включении компа у меня не работает монитор, но нормально работает ТВ-выход - Компьютерное железо
Уже несколько дней рву волосы на голове.... Такая проблемка: при включении компа у меня не работает монитор, только мигает лампочка...

У клиента не работает роутер. У Меня дома работает. TRENDnet TEW-432BRP - Сетевое оборудование
Добрый день! У клиента установлен TRENDnet TEW-432BRP. Настроен для подключения к Beeline, но это не совсем важно. До определенного...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
08.06.2015, 19:55 #2
Один раз надо БД создавать, а у вас 2.
0
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
09.06.2015, 03:33  [ТС] #3
Цитата Сообщение от Rube Посмотреть сообщение
Один раз надо БД создавать, а у вас 2.
то есть создание БД убрать, а создание таблицы оставить?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
09.06.2015, 07:46 #4
DBHelper надо вынести в отдельный класс.
0
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
09.06.2015, 17:18  [ТС] #5
Цитата Сообщение от Rube Посмотреть сообщение
DBHelper надо вынести в отдельный класс.
я создал отдельный класс, а как сделать чтобы создавались 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
package com.example.stracking;
 
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
public class DBHelper extends SQLiteOpenHelper {
 
    // константы для конструктора
    private static final String DATABASE_NAME = "dbjurnal";
    private static final int DATABASE_VERSION = 1;
    public static final String TABLE_NAME = "contact_table";
    public static final String UID = "id";
 
    private static final String SQL_CREATE_ENTRIES = "CREATE TABLE "
            + TABLE_NAME + " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
            + "name text," + "email text" + ");";
 
 
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        
    }
}
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
09.06.2015, 17:46 #6
Kollinar, ты бы ради интереса прочитал, что такое база данных.
Грубо и примитивно - это сборище таблиц.
Создал базу данных - создал это сборище.

К чему я?
Ах, да, что тебе мешает, создавая базу, создавать сразу все тыщу мильёнов таблиц, ей "принадлжежащих"?
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
09.06.2015, 21:29 #7
Цитата Сообщение от Kollinar Посмотреть сообщение
а как сделать чтобы создавались 2 разных таблицы
Java
1
2
3
4
5
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES);
        db.execSQL(SQL_ВТОРОЙ_ТАБЛИЦЫ);
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 21:29
Привет! Вот еще темы с ответами:

Не работает скомпилированный EXE файл хотя в самой среде игра работает - Unity, Unity3D
Я почти закончил разработку своей игры на Unity2D но после запуска скомпилированного EXE файла половина текстур не отображается хотя в...

Multimap STL - работает только запись в файл, поиск в файле не работает - C++
И снова здравствуйте. Снова я прошу вашей помощи. Переделал программу с мапом в мульти мап, но что то пошло не так и работает только запись...

Работа с excel: 11 версия не работает с 2010 офисом, но работает с 2007, 2013 - C++/CLI
Имеются несколько Microsoft.Office.Interop.Excel.dll,которые используются для записи в excel документ. Проблема в том что 11 версия не...

IE опять все портит, в 9 версии работает, а в остальных нет. не работает float - HTML, CSS
сайт http://gkantecreo.ru/ вверху в шапке слайдер в блоке div с css {float: left; padding-left: 15px;} везде прижат слева, а в &quot;интернет...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.06.2015, 21:29
Ответ Создать тему
Опции темы

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