Sqlite код функции Android вызывает сбой приложения при регистрации
Теперь у меня есть две функции для проверки, существует ли электронная почта и есть ли студент в моем sqlite-коде. Но когда я вызываю функции со страницы реестра, приложение вылетает, и журнал сообщает, что ошибка связана с функцией isUserinCourse и условием if на странице реестра. Я делюсь кодом своих функций и страницей регистрации. Пожалуйста, скажите мне, если я делаю какую-то ошибку. Я уже пробовал разные комбинации циклов for на своей странице регистрации. Не работает Однако, если я добавлю только функцию "Электронная почта существует", она будет работать.
Код SQLITE
public boolean ifUserInCourse(String sid) {
boolean rv = false;
String whereclause = KEY_SID + "=?";
String[] whereargs = new String[]{sid};
SQLiteDatabase db = this.getReadableDatabase();
Cursor csr = db.query(TABLE_USERINFO,null, whereclause, whereargs,null,null,null);
if (csr.getCount() > 0) rv = true;
csr.close();
return rv;
}
public boolean isEmailExists(String email) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_USERS,// Selecting Table
new String[]{KEY_ID, KEY_EMAIL, KEY_SID, KEY_PASSWORD},//Selecting columns want to query
KEY_EMAIL + "=?",
new String[]{email},//Where clause
null, null, null);
if (cursor != null && cursor.moveToFirst()&& cursor.getCount()>0) {
//if cursor has value then in user database there is user associated with this given email so return true
return true;
}
//if email does not exist return false
return false;
}
Зарегистрировать код активности
buttonRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (validate()) {
String Email = editTextEmail.getText().toString();
String SID = editTextSID.getText().toString();
String Password = editTextPassword.getText().toString();
progressBar.setVisibility(View.VISIBLE);
//Check in the database is there any user associated with this email
if (!sqliteHelper.ifUserInCourse(SID) && !sqliteHelper.isEmailExists(Email)) {
sqliteHelper.addUser(new User(null, Email, SID, Password));
Snackbar.make(buttonRegister, "User created successfully! Please Login ", Snackbar.LENGTH_LONG).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, Snackbar.LENGTH_LONG);
} else {
if(sqliteHelper.isEmailExists(Email)) {
Snackbar.make(buttonRegister, "Email already exists ", Snackbar.LENGTH_LONG).show();
} else {
Snackbar.make(buttonRegister, "User doesn't exists ", Snackbar.LENGTH_LONG).show();
}
}
progressBar.setVisibility(View.GONE);
}
}
});