будучи новичком в Android Studio, я, как правило, получаю много-много мелких ошибок, которые я не могу найти, пожалуйста, дайте мне знать, что я делаю не так, потому что я как-то перепробовал все остальные ответы, и это не улучшается :)
public class DatabaseHelper extends SQLiteOpenHelper{
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "UserManager.db";
private static final String TABLE_USER = "user";
private static final String COLUMN_USER_ID= "user_id";
private static final String COLUMN_USER_NAME= "user_name";
private static final String COLUMN_USER_EMAIL= "user_email";
private static final String COLUMN_USER_PASSWORD= "user_password";
private String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "(" +
COLUMN_USER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COLUMN_USER_NAME + " TEXT," + COLUMN_USER_EMAIL + " TEXT," +
COLUMN_USER_PASSWORD + " TEXT" + ")";
private String DROP_USER_TABLE = " DROP TABLE IF EXISTS " + TABLE_USER;
public DatabaseHelper(Context context){
super(context, DATABASE_NAME,null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL(CREATE_USER_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
db.execSQL(DROP_USER_TABLE);
onCreate(db);
}
public void addUser(User user){
SQLiteDatabase db= this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_USER_NAME, user.getName());
values.put(COLUMN_USER_EMAIL, user.getEmail());
values.put(COLUMN_USER_PASSWORD, user.getPassword());
db.insert(TABLE_USER,null, values);
db.close();
}
public boolean checkUser(String password, String email){
String[] columns = {
COLUMN_USER_ID
};
SQLiteDatabase db= this.getWritableDatabase();
String selection = COLUMN_USER_EMAIL + " = ? " + "AND "+ COLUMN_USER_PASSWORD+" =? ";
String[] selectionArgs = { email,password };
Cursor cursor = db.query(TABLE_USER,
columns,
selection,
selectionArgs,
null,
null,
null);
int cursorCount = cursor.getCount();
cursor.close();
db.close();
if (cursorCount > 0){
return true;
}
return false;
}
}
Я знаю, что logcat сообщает мне об этом:
07-11 22:08:29.072 9071-9071/com.example.lavinia.sqllogin E/AndroidRuntime:
FATAL EXCEPTION: main
Process: com.example.lavinia.sqllogin, PID: 9071
android.database.sqlite.SQLiteException: no such column: user_id (code 1
SQLITE_ERROR): , while compiling: SELECT user_id FROM user WHERE user_email =
?AND user_password =?
И я не могу найти неправильное использование ID пользователя, я думаю, что использовал его нормально, и приложение перестанет работать после того, как я сам войду в систему. (в приложении есть вход в систему и регистрация - и регистрация работает нормально, но нажатие кнопки входа в Login.activity приведет к сбою приложения)
Большое спасибо за вашу поддержку :) Если нужно, я предоставлю дополнительный код.

Эта проблема, вероятно, связана с я часто получаю много-много мелких ошибок в сочетании с распространенным заблуждением относительно метода onCreate.
Метод onCreate автоматически запускается только один раз, когда база данных и был фактически создан. Он не запускается каждый раз при запуске приложения.
Таким образом, любые изменения (включая исправления) в структуре (таблицы и столбцы) не будут применяться, если они закодированы / выполнены в рамках метода onCreate.
При разработке самое простое исправление - выполнить одно из следующих 3: -
onCreate).onCreate).onUpgrade отбросит таблицу (ы), а затем вызовет onCreate, чтобы увеличить номер версии базы данных, переданный в качестве 4-го параметра подклассу SQLIteOpenHelper (также известному как класс DatabaseHelper).После выполнения одного из указанных выше действий перезапустите приложение.
Спасибо добрый сэр :) Все как-то сработало при воспроизведении шагов .. теперь все, что я получаю после регистрации и попытки входа в систему: неправильный адрес электронной почты или пароль .. Появилась новая ошибка, пора рассердиться на новую. : D