Запрос работает неправильно - SQlite Android Studio - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть эта функция, которая должна вставлять данные в SQlite DB и возвращать false, если данные не вставляются, однако функция возвращает true, но когда я go для проверки файла .db, в таблице нет данных.

public boolean insertData(String name, String emailAddress, String postalAddress, String password, int phoneNumber, String bloodType) {
    ContentValues contentValues = new ContentValues();
    SQLiteDatabase db = this.getWritableDatabase();

    //set data to columns
    contentValues.put(COL_2, name);
    contentValues.put(COL_3, emailAddress);
    contentValues.put(COL_4, postalAddress);
    contentValues.put(COL_5, password);
    contentValues.put(COL_6, phoneNumber);
    contentValues.put(COL_7, bloodType);

    //inserts data into db
    long result = db.insert(TABLE_NAME, null, contentValues);

    //checks to see if data has been inserted correctly
    if (result == -1) {
        return false;
    } else
        return true;


}

на изображении ниже показано, что таблица и база данных созданы правильно.

database info

1 Ответ

1 голос
/ 03 апреля 2020

Вы должны позвонить #beginTransaction(), #setTransactionSuccessful() и #endTransaction(), как описано здесь .

Изменения будут отменены, если какая-либо транзакция будет завершена без пометки как чистый (вызывая setTransactionSuccessful).

public boolean insertData(String name, String emailAddress, String postalAddress, String password, int phoneNumber, String bloodType) {
    ContentValues contentValues = new ContentValues();
    SQLiteDatabase db = this.getWritableDatabase();

    db.beginTransaction();
    try {
        contentValues.put(COL_2, name);
        contentValues.put(COL_3, emailAddress);
        contentValues.put(COL_4, postalAddress);
        contentValues.put(COL_5, password);
        contentValues.put(COL_6, phoneNumber);
        contentValues.put(COL_7, bloodType);
        long result = db.insert(TABLE_NAME, null, contentValues);
        db.setTransactionSuccessful();
        return result != -1;
    } finally {
        db.endTransaction();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...