Когда я пытаюсь создать CREATE_USER_TABLE, получаю ошибку - PullRequest
0 голосов
/ 10 марта 2019

// это мой DatabaseHelper.java

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 email, String password) {
    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;
}`

1 Ответ

0 голосов
/ 10 марта 2019

Вы не публикуете, что это за ошибка, но, глядя на ваш код, я вижу одну серьезную проблему.

Нужно помнить, что SQLite полагается на соответствующие пробелы в своих операторах.Итак, ваше утверждение

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," + ")";

будет переводиться в нечто вроде

CREATE user_table useridINTEGER PRIMARY KEY AUTOINCREMENT,user_nameTEXTuser_emailTEXT,user_passwordTEXT,)

Видите проблему?Пространства не там, где они должны быть.Вам нужно будет создать что-то вроде этого:

CREATE user_table, userid INTEGER PRIMARY KEY  AUTOINCREMENT,user_name TEXT, user_email TEXT, user_password TEXT

, чтобы правильно вставить пробелы.

Сделайте вывод logcat, чтобы увидеть оператор, который вы производите, чтобы вы могливнести коррективы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...