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

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

Войти
Регистрация
Восстановить пароль
 
Matanoid
10 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 37
#1

SQLite, ошибка: не существует поля "почта" в базе данных - Программирование Android

01.07.2016, 13:25. Просмотров 243. Ответов 1
Метки нет (Все метки)

Создал самую простую программку для понимания баз данных SQLite.
Есть два поля: имя и почта. 3 кнопки: добавить в базу данных, считать с базы данных и стереть базу данных.
Выдает ошибку что не существует поля "почта" в базе данных. Помогите найти ошибку в коде.

main_activity.xml
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
 
        <EditText
            android:id="@+id/etName"
            android:hint="Name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>
 
        <EditText
            android:id="@+id/etEmail"
            android:hint="Email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:id="@+id/btnAdd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Add">
        </Button>
        <Button
            android:id="@+id/btnRead"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Read">
        </Button>
        <Button
            android:id="@+id/btnClear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Clear">
        </Button>
    </LinearLayout>
</LinearLayout>
класс для базы данных DBHelper.java
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
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
public class DBHelper  extends SQLiteOpenHelper{
 
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "contactDb";
    public static final String TABLE_CONTACTS = "contacts";
 
    public static final String KEY_ID = "_id";
    public static final String KEY_NAME = "name";
    public static final String KEY_MAIL = "mail";
 
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_CONTACTS + "(" + KEY_ID
                + " integer primary key," + KEY_NAME + " text," + KEY_MAIL + " text" + ")");
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("drop table if exists " + TABLE_CONTACTS);
 
        onCreate(db);
 
    }
}
MainActivity.java
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
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
 
    Button btnAdd, btnRead, btnClear;
    EditText etName, etEmail;
 
    DBHelper dbHelper;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        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);
 
        etName = (EditText) findViewById(R.id.etName);
        etEmail = (EditText) findViewById(R.id.etEmail);
 
        dbHelper = new DBHelper(this);
    }
 
    @Override
    public void onClick(View v) {
 
        String name = etName.getText().toString();
        String email = etEmail.getText().toString();
 
        SQLiteDatabase database = dbHelper.getWritableDatabase();
 
        ContentValues contentValues = new ContentValues();
 
 
        switch (v.getId()) {
 
            case R.id.btnAdd:
                contentValues.put(DBHelper.KEY_NAME, name);
                contentValues.put(DBHelper.KEY_MAIL, email);
 
                database.insert(DBHelper.TABLE_CONTACTS, null, contentValues);
                break;
 
            case R.id.btnRead:
                Cursor cursor = database.query(DBHelper.TABLE_CONTACTS, null, null, null, null, null, null);
 
                if (cursor.moveToFirst()) {
                    int idIndex = cursor.getColumnIndex(DBHelper.KEY_ID);
                    int nameIndex = cursor.getColumnIndex(DBHelper.KEY_NAME);
                    int emailIndex = cursor.getColumnIndex(DBHelper.KEY_MAIL);
                        do {
                            Log.d("mLog", "ID = " + cursor.getInt(idIndex) +
                                            ", name = " + cursor.getString(nameIndex) +
                                            ", email = " + cursor.getString(emailIndex));
                        } while (cursor.moveToNext());
                } else
                    Log.d("mLog","0 rows");
 
                cursor.close();
                break;
 
            case R.id.btnClear:
                database.delete(DBHelper.TABLE_CONTACTS, null, null);
                break;
        }
        dbHelper.close();
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2016, 13:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SQLite, ошибка: не существует поля "почта" в базе данных (Программирование Android):

Ошибка "Unknown method "e" of "org.apache.commons.logging.Log" - Программирование Android
Unknown method 'e' of 'org.apache.commons.logging.Log' package com.mycompany.myapp; import android.widget.*; import...

"Attempt to re-open an already-closed object" при работе с SQLite - Программирование Android
Добрый день. Разрабатываю приложение и столкнулся с проблемой... Лог выдаёт вот такое: FATAL EXCEPTION: main ...

Двухуровневый список выбора (Spinner) "Страна->Город" c применением SQLite - Программирование Android
Подскажите пожалуйста в каком виде создавать данные в БД и как правильно переработать файлы чтоб выводить список стран и городов черпая...

"Синхронизация" баз SQLite двух устройств - Программирование Android
Добрый вечер, у меня такой вопрос к знатокам: возможно ли реализовать &quot;синхронизацию&quot; между двумя устройствами, имеющих отличные друг от...

SQLite, отношение "один ко многим" - Программирование Android
Добрый день! Имеется такая задача: Создаю в SQLite две таблицы - &quot;Кинотеатры&quot;, &quot;Фильмы&quot;. У фильма есть параметр - в каких...

Диплом: "Исследование приемов и методов прошивки мобильных устройств на базе ОС Андроид" (нужна информация) - Программирование Android
Тема: Исследование приемов и методов прошивки мобильных устройствна базе ОС Андройд. Не могу придумать введение,помогите...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Matanoid
10 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 37
02.07.2016, 16:21  [ТС] #2
Данный код правильный! Скорее всего база данных была создана раньше с ошибкой. Пересоздал проект и все заработало! Тему Можно закрывать!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2016, 16:21
Привет! Вот еще темы с ответами:

Ошибка "Gradle"MyApplication" projectrefresh failed - Программирование Android
Всем доброго вечера. Только начинаю писать под андроид, и на одном из первых этапов возникла такая ошибка. Создал проект (эмулятор не...

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры" - Программирование Android
Ребят, всем привет! накидайте какие-нить идеи по реализации ситуация такая есть таблицы - &quot;списки_жанров&quot;, &quot;фильмы&quot;, &quot;режиссеры&quot; мне...

TextInputLayout "открытие поля при старте программы" - Программирование Android
Ребят, всем привет! Вот решил немного изучить дизайн, и не могу понять в чем дело, когда использую TextInputLayout в своем view и стартую -...

Ошибка при записи данных в SQLite - Программирование Android
Нужно добавить данные в БД SQLite, добавить нужно только текст. Проект запускается, но при нажатии на кнопку программа падает, в чем беда?...


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

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

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