С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.03.2022
Сообщений: 15

Проблема в Android Studio c SQLite

26.04.2022, 20:41. Показов 556. Ответов 1

Студворк — интернет-сервис помощи студентам
Значит, есть у меня класс Regscreen

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
m.example.zapslov3;
 
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
import androidx.appcompat.app.AppCompatActivity;
 
public class RegScreen extends AppCompatActivity {
    DBHaccounts dbHaccounts;
    public EditText logininReg;
    public EditText passwordinReg;
    public Button buttonReg2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
 
        dbHaccounts=new DBHaccounts(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reg_screen);
        logininReg=(EditText)findViewById(R.id.logininReg);
        passwordinReg=(EditText)findViewById(R.id.passwordinReg);
 
        buttonReg2=findViewById(R.id.buttonReg2);
 
        buttonReg2.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                String login=logininReg.getText().toString();
                String password=passwordinReg.getText().toString();
 
 
                ContentValues contentValues= new ContentValues();
                SQLiteDatabase database=dbHaccounts.getWritableDatabase();
                contentValues.put(DBHaccounts.KEY_LOG, login);
                contentValues.put(DBHaccounts.KEY_PW, password);
 
                database.insert(DBHaccounts.TABLE_ACCOUNTS,null,contentValues);
 
                Cursor cursor=database.query(DBHaccounts.TABLE_ACCOUNTS,null,null,null,null,null,null);
 
                if (cursor.moveToFirst()){
                    int idIndex=cursor.getColumnIndex(DBHaccounts.KEY_ID);
                    int logIndex=cursor.getColumnIndex(DBHaccounts.KEY_LOG);
                    int pwIndex=cursor.getColumnIndex(DBHaccounts.KEY_PW);
                    do{
                        Log.d("mLog","ID="+cursor.getInt(idIndex)+" "+cursor.getString(logIndex)+cursor.getString(pwIndex));
                    }while (cursor.moveToNext());
                } else
                    Log.d("mLog","0 rows");
 
                cursor.close();
 
 
            }
            });
    }}
и DBHaccounts

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
package com.example.zapslov3;
 
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Build;
 
import androidx.annotation.Nullable;
 
public class DBHaccounts extends SQLiteOpenHelper {
    public static final int DATABASE_VERSION=3;
    public static final String DATABASE_NAME="accDB";
    public static final String TABLE_ACCOUNTS="accounts";
 
    public static final String KEY_ID="_id";
    public static final String KEY_LOG="log";
    public static final String KEY_PW="pw";
 
    public static final String KEY_RIGHT="rght";
    public static final String KEY_WRONG="wrong";
 
    public DBHaccounts(@Nullable Context context) {
        super(context,DATABASE_NAME,null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table "+ TABLE_ACCOUNTS + "(" +KEY_ID+" integer primary key, "+ KEY_LOG +"text,"+
                KEY_PW +"text,"+KEY_RIGHT+ "integer,"+KEY_WRONG+"integer"+")");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("drop table if exists "+TABLE_ACCOUNTS);
    onCreate(db);
    }
}
Когда в базу данных пытаюсь данные добавить, заявляет, что "table accounts has no column named pw in "INSERT INTO accounts(pw,log) VALUES (?,?)" cделал также как и в гайде, Кто знает, как исправить? И по подробнее пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2022, 20:41
Ответы с готовыми решениями:

Работа БД SQLite в android studio
Здравствуйте! Я новичок в программировании, я сейчас пишу приложение по учету фактически выполненной работы, у меня возникли проблемы при...

Где хранятся файлы с БД SQLite в Android Studio?
Такая проблема, создал БД, создал колонки с именами, но потом начал переименовывать и ошибка (код ниже). Пишет не создано колонки с именем,...

SQLite, Android studio. Как вывести значения из столбца
Мне нужно, чтобы переменная getCode получила значения из таблицы products в столбце code. Помогите, пожалуйста, почему-то на 3 строке...

1
MiThEoN
 Аватар для VASSUV
466 / 323 / 42
Регистрация: 31.10.2009
Сообщений: 546
Записей в блоге: 2
27.04.2022, 07:10
Если база говорит что нет колонки в табличке, значит ее там нет

Ее нет там по факту, хоть ты и в void onCreate(SQLiteDatabase db) правильно создаешь таблицу

Советую почитать тему миграций баз данных

Или чтобы появилась эта колонка выполни что нибудь из следующего

- удалить приложение и снова поставить
после перезапуска, вызовется onCreate как в первый раз, и добавит правильную таблицу в БД
- или почистить кэш и данные
после перезапуска, вызовется onCreate как в первый раз, и добавит правильную таблицу в БД
- или измени DATABASE_NAME,
тут создастся новая БД, с правильными таблицами
- или увеличь DATABASE_VERSION
вызовется onUpgrade затем onCreate, что создаст правильную правильную таблицу в БД
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2022, 07:10
Помогаю со студенческими работами здесь

Android Studio: Select (SQLite) с участием ListView и Button
Всем привет. В моём андроид-приложении есть две кнопки: первая отвечает за инсерт, а вторая — селект. Инсерт работает, а селект — нет,...

Проблема с подключением готовой базы данных SQlite в android приложение
Не могу понять почему не работает. Прочитал кучу информации и вроде все правильно. Основное что мне надо - это достать данные из таблиц(ы)...

Android Studio проблема
Всем привет!Со мной случилась очень не приятная ситуация,я не могу нормально скачать android studio,когда компилирую приложение в андроид в...

Android Studio проблема с свИчами и БД
Здрасте форумчане! возникла проблемка с свИчами (Switch) и решения найти ни как не могу. Ситуация такая: - есть удалённая база данных...

Проблема с Button на Android Studio
Здравствуйте, дамы и господа! Помогите пожалуйста разобраться с проблемой. Я написал для Андроида приложение, которое решает...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru