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);


                }
            }
        });

0 ответов

Другие вопросы по тегам