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

Вылетает при попытке подключиться к базе данных

08.01.2019, 20:23. Просмотров 310. Ответов 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
package com.calendar.calendarr;
 
import android.content.ContentValues;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
 
import java.util.ArrayList;
 
public class ListView1 extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_view);
        final DBHelper dbHelper = new DBHelper(this);
        final SQLiteDatabase db = dbHelper.getWritableDatabase();
        final String LOG_TAG = "myLogs";
        final ArrayList<String> data=new ArrayList<>();
        final Bundle arguments = getIntent().getExtras();
        final ArrayAdapter<String> adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,data);
        final ListView mListView=findViewById(R.id.dailyView1);
        mListView.setAdapter(adapter);
        final EditText editText=(EditText)findViewById(R.id.editText1);
 
        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 dataColIndex = c.getColumnIndex("data");
            int yearColIndex = c.getColumnIndex("year");
            int monthColIndex = c.getColumnIndex("month");
            int dayColIndex = c.getColumnIndex("day");
 
            do {
                // получаем значения по номерам столбцов и пишем все в лог
                Log.d(LOG_TAG,
                        "ID = " + c.getInt(idColIndex) +
                                ", name = " + c.getString(dataColIndex) +
                                ", year = " + c.getString(yearColIndex) +
                                ", month = " + c.getString(monthColIndex) +
                                ", day = " + c.getString(dataColIndex));
                // переход на следующую строку
                // а если следующей нет (текущая - последняя), то false - выходим из цикла
            } while (c.moveToNext());
        } else
            Log.d(LOG_TAG, "0 rows");
        c.close();
       /* editText.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int  keyKode, KeyEvent event) {
                if (event.getAction()==KeyEvent.ACTION_DOWN)
                    if (keyKode==KeyEvent.KEYCODE_ENTER){
                        data.add(0,editText.getText().toString());
                        adapter.notifyDataSetChanged();
                        editText.setText("");
                        return true;
                    }
                return false;
            }
        });*/
        editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_DONE) {
                    // обработка нажатия Enter
                    mListView.setVisibility(View.VISIBLE);
                    ContentValues cv = new ContentValues();
                    data.add(editText.getText().toString());
                    adapter.notifyDataSetChanged();
                    editText.setText("");
                    String data = editText.getText().toString();
                    String year=arguments.get("year").toString();
                    String month=arguments.get("month").toString();
                    String day=arguments.get("day").toString();
                    Log.d(LOG_TAG, "--- Insert in mytable: ---");
                    // подготовим данные для вставки в виде пар: наименование столбца - значение
 
                    cv.put("data", data);
                    cv.put("year", year);
                    cv.put("month", month);
                    cv.put("day", day);
 
                    long rowID = db.insert("mytable", null, cv);
                    Log.d(LOG_TAG, "row inserted, ID = " + rowID);
                    return true;
                }
                return false;
            }
        });
        // закрываем подключение к БД
        dbHelper.close();
    }
}
 
class DBHelper extends SQLiteOpenHelper {
 
    public DBHelper(Context context) {
        // конструктор суперкласса
        super(context, "myDB", null, 1);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        final String LOG_TAG = "myLogs";
        Log.d(LOG_TAG, "--- onCreate database ---");
        // создаем таблицу с полями
        db.execSQL("create table mytable ("
                + "id integer primary key autoincrement,"
                + "data,"
                + "year"
                + "month"
                + "day" + ");");
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
    }
}
0
Миниатюры
Вылетает при попытке подключиться к базе данных  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2019, 20:23
Ответы с готовыми решениями:

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

Не удается подключиться к базе данных
public class DisplayActivity extends Activity { ListView list; LinearLayout ll; ...

Как подключиться с базе данных FireBird из Android
Всем привет, ребят кто нить сталкивался с такой задачей?. Смысл в том, что есть база данных...

Вылетает приложение при попытке удалить элемент из SQL таблицы в диалоговом окне
Лог: E/AndroidRuntime: FATAL EXCEPTION: main Process: user.adprediction, PID:...

При повторной попытке подключиться к базе сообщается, что файл уже занят
добрый день, я подключаю базу данных к проекту, получаю данные из базы, заношу их в DataSet,...

2
jaman_smk
107 / 86 / 28
Регистрация: 07.01.2017
Сообщений: 447
08.01.2019, 20:28 2
https://stackoverflow.com/questions/...-closed-object
0
topgun1
0 / 0 / 1
Регистрация: 28.03.2018
Сообщений: 41
09.01.2019, 15:31  [ТС] 3
По onEditorAction записываю данные в бд, как по onCreate выдавать данные из бд в LisView?

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
package com.calendar.calendarr;
 
import android.content.ContentValues;
import android.content.Context;
import android.os.Bundle;
import android.os.strictmode.SqliteObjectLeakedViolation;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
 
import java.util.ArrayList;
import java.util.List;
 
public class ListView1 extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_view);
 
        final DatabaseHandler db = new DatabaseHandler(this);
 
        final ArrayList<String> data=new ArrayList<>();
        final Bundle arguments = getIntent().getExtras();
        final ArrayAdapter<String> adapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,data);
        final ListView mListView=findViewById(R.id.dailyView1);
        mListView.setAdapter(adapter);
        final EditText editText=(EditText)findViewById(R.id.editText1);
       
       /* editText.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int  keyKode, KeyEvent event) {
                if (event.getAction()==KeyEvent.ACTION_DOWN)
                    if (keyKode==KeyEvent.KEYCODE_ENTER){
                        data.add(0,editText.getText().toString());
                        adapter.notifyDataSetChanged();
                        editText.setText("");
                        return true;
                    }
                return false;
            }
        });*/
        editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_DONE) {
                    // обработка нажатия Enter
                    mListView.setVisibility(View.VISIBLE);
                    ContentValues cv = new ContentValues();
                    data.add(editText.getText().toString());
                    adapter.notifyDataSetChanged();
                    editText.setText("");
                    String data = editText.getText().toString();
                    String year=arguments.get("year").toString();
                    String month=arguments.get("month").toString();
                    String day=arguments.get("day").toString();
                    db.addContact(new Contact(data, year, month, day));
                  //  editText.setText(db.getContactsCount());
                    return true;
                }
                return false;
            }
        });
        //data.add(db.getContact(0).toString());
        //adapter.notifyDataSetChanged();
    }
}
класс бд

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
package com.calendar.calendarr;
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
import java.util.ArrayList;
import java.util.List;
 
 
public class DatabaseHandler extends SQLiteOpenHelper{
    private static final int DATABASE_VERSION=1;
    private static final String DATABASE_NAME= "contactsManager";
    private static final String TABLE_CONTACTS = "contacts";
    private static final String KEY_ID = "id";
    private static final String KEY_DATA = "data";
    private static final String KEY_YEAR="year";
    private static final String KEY_MONTH="month";
    private static final String KEY_DAY = "day";
 
    public DatabaseHandler(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db){
        String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_DATA + " TEXT," +
                KEY_YEAR + " TEXT," + KEY_MONTH + " TEXT," + KEY_DAY + " TEXT" + ")";
        db.execSQL(CREATE_CONTACTS_TABLE);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
    }
 
   // @Override
    public void addContact(Contact contact) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(KEY_DATA, contact.getData());
        values.put(KEY_YEAR, contact.getYear());
        values.put(KEY_MONTH, contact.getMonth());
        values.put(KEY_DAY, contact.getDay());
 
        db.insert(TABLE_CONTACTS, null, values);
        db.close();
    }
 
    //@Override
    public Contact getContact(int id) {
        SQLiteDatabase db = this.getReadableDatabase();
 
        Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
                        KEY_DATA, KEY_YEAR, KEY_MONTH, KEY_DAY }, KEY_ID + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);
 
        if (cursor != null){
            cursor.moveToFirst();
        }
 
        Contact contact = new Contact(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
 
        return contact;
    }
 
   // @Override
    public List<Contact> getAllContacts() {
        List<Contact> contactList = new ArrayList<Contact>();
        String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;
 
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
 
        if (cursor.moveToFirst()) {
            do {
                Contact contact = new Contact();
                contact.setID(Integer.parseInt(cursor.getString(0)));
                contact.setData(cursor.getString(1));
                contact.setYear(cursor.getString(2));
                contact.setMonth(cursor.getString(3));
                contact.setDay(cursor.getString(4));
                contactList.add(contact);
            } while (cursor.moveToNext());
        }
 
        return contactList;
    }
 
    //@Override
    public int updateContact(Contact contact) {
        SQLiteDatabase db = this.getWritableDatabase();
 
        ContentValues values = new ContentValues();
        values.put(KEY_DATA, contact.getData());
        values.put(KEY_YEAR, contact.getYear());
        values.put(KEY_MONTH, contact.getMonth());
        values.put(KEY_DAY, contact.getDay());
 
        return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
                new String[] { String.valueOf(contact.getID()) });
    }
 
    //@Override
    public void deleteContact(Contact contact) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) });
        db.close();
    }
 
    //@Override
    public void deleteAll() {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_CONTACTS, null, null);
        db.close();
    }
 
    //@Override
    public int getContactsCount() {
        String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        cursor.close();
 
        return cursor.getCount();
    }
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2019, 15:31

Проблема с базой данных. При попытке открыть вылетает 500-ая ошибка
Такая проблема: на серваке по адресу 'db/forum.mdb' лежит нужная мне база. ODBC источник создать...

Ошибка при попытке подключения к базе данных '80004005'
Многоуважаемый ALL! При попытке подключения к базе данных происходит такая ошибка: ...

При установке DLE 9.8 - невозможно подключиться к базе данных
При установке DLE 9.8 на этапе вводе логинов, паролей выскакивает такая вот ошибка :


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

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

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