Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
#1

Не работает БД

08.06.2015, 18:58. Просмотров 243. Ответов 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
Ответы с готовыми решениями:

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

Ноутбук работает только с Wi Fi роутера дома, в кафе не работает и везде. Почему?
Подскажите пожалуйста, почему у меня ноутбук с виндой 7, работает вай фай...

не работает в ворде веб компонент,и скачав обновление ow 11 не работает все равно
проблема с веб элементами и обновлениями на них))

Подключение библиотеки DLL C++: работает на примере консоли и не работает в WinForms App
Здравствуйте! Помогите начинающему бедному студенту!! Осваиваю С++. В книге...

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

6
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
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,074
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
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
09.06.2015, 17:46 #6
Kollinar, ты бы ради интереса прочитал, что такое база данных.
Грубо и примитивно - это сборище таблиц.
Создал базу данных - создал это сборище.

К чему я?
Ах, да, что тебе мешает, создавая базу, создавать сразу все тыщу мильёнов таблиц, ей "принадлжежащих"?
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
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
09.06.2015, 21:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 21:29

Не работает php на wps-е. Гланвая страница работает все остальное нет
На локальном дэнвере все отлично работает. Но при копировании на впс и...

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

Swf не работает, а в тестовом режиме в самом flash и формате exe работает
Доброго времени суток. Такая проблема: есть рабочий код обмена данными с php...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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