Подскажите пожалуйста, почему может не добавляться запись в БД? Никакой ошибки не возникает, всё работает, но запись просто не добавляет.
Код добавления записи:
public static void insertRowAchievements(Context context) {
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
// открываем подключение
db = databaseHelper.open();
// Создаем объект ContentValues, где имена столбцов ключи,
// а информация о пользователе является значениями ключей
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_TITTLE, "Новичёк"); // 1
contentValues.put(COLUMN_DESCRIPTION, "Пройдите 5 уровней подряд");
contentValues.put(COLUMN_REWARD, 5);
contentValues.put(COLUMN_STATUS, false);
contentValues.put(COLUMN_ID_USER, id);
db.insert(TABLE_ACHIEVEMENTS, null, contentValues);
contentValues.clear();
db.close();
}
Код таблицы БД, куда пытаюсь добавить запись:
CREATE TABLE `achievements` (
`_id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`tittle` TEXT NOT NULL UNIQUE,
`description` TEXT NOT NULL UNIQUE,
`reward` INTEGER NOT NULL,
`status` BOOLEAN NOT NULL DEFAULT 'false',
`count_levels` INTEGER DEFAULT NULL,
`count_money` INTEGER DEFAULT NULL,
`count_eating` INTEGER DEFAULT NULL,
`count_wins` INTEGER DEFAULT NULL,
`id_user` INTEGER NOT NULL,
FOREIGN KEY(`id_user`) REFERENCES `users`(`_id`) ON DELETE SET NULL
);
Попробуйте заменить ваш метод insert() на этот
public long insert(String table, String nullColumnHack, ContentValues values) {
return myDataBase.insert(table, nullColumnHack, values);
}
где myDataBase экземпляр SQLiteDatabase.
Если вам нужно я могу скинуть свой класс DataBaseHelper, который использую у себя. Я уверен что вы можете его у себя использовать
Сборка персонального компьютера от Artline: умный выбор для современных пользователей