Проблемы при вставке в БД

0

Когда я пытаюсь отправить данные в базу данных, приложение аварийно завершает работу.

Вот части файла java, связанные с созданием и вставкой данных в базу данных.

Мой класс Contract.java имеет следующую информацию:

public class Contract {
    public static abstract class customReminder{
        public static final String TABLE_NAME = "CUSTOM_REMINDER";
        public static final String ID = "ID";
        public static final String TITLE = "TITLE";
        public static final String DESCRIPTION = "DESCRIPTION";
        public static final String DATE_TIME = "DATE_TIME";

        public static final String[] REMINDER_COLUMNS = {ID, TITLE, DESCRIPTION, DATE_TIME};

    }

Мой класс DBHelper.java:

//SQLite statement for custom reminder table
public static final String CUSTOM_REMINDER_TABLE = "CREATE TABLE " + Contract.customReminder.TABLE_NAME + "("
        + Contract.customReminder.ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
        + Contract.customReminder.TITLE + " TEXT,"
        + Contract.customReminder.DESCRIPTION + " TEXT,"
        + Contract.customReminder.DATE_TIME + " TEXT,"
        + ");";

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(CUSTOM_REMINDER_TABLE);
}

Мой класс CustumRemider.java:

public boolean createCustomReminder(String title, String description, String dateTime){
    ContentValues contentValues = new ContentValues();
    contentValues.put(mAllColumns[1], title);
    contentValues.put(mAllColumns[2], description);
    contentValues.put(mAllColumns[3], dateTime);
    long result = mDatabase.insert(Contract.customReminder.TABLE_NAME, null, contentValues);
    return result != -1;
}

Я загрузил базу данных на свой ПК с Android Device Monitor и открыл ее с помощью SQLiteBrowser. Я заметил, что таблица android_metadata создается вместо CUSTOM_REMINDER.

CREATE TABLE android_metadata (locale TEXT)

Я не знаю, откуда приходит запрос, и почему он это делает.

  • 0
    Пожалуйста, опубликуйте ошибку LogCat
  • 0
    Таблица android_metadata генерируется android и хранит метаданные, которые нужны android. Что-то еще не так? Отслеживание сбоя, которое вы получите, будет полезно
Показать ещё 1 комментарий
Теги:
android-sqlite

1 ответ

0
Лучший ответ

Вам нужно изменить запятую (",") после последнего параметра в запросе create table

public static final String CUSTOM_REMINDER_TABLE = "CREATE TABLE " + Contract.customReminder.TABLE_NAME + "("
    + Contract.customReminder.ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
    + Contract.customReminder.TITLE + " TEXT,"
    + Contract.customReminder.DESCRIPTION + " TEXT,"
    + Contract.customReminder.DATE_TIME + " TEXT"
    + ");";

вместо этого

public static final String CUSTOM_REMINDER_TABLE = "CREATE TABLE " + Contract.customReminder.TABLE_NAME + "("
    + Contract.customReminder.ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
    + Contract.customReminder.TITLE + " TEXT,"
    + Contract.customReminder.DESCRIPTION + " TEXT,"
    + Contract.customReminder.DATE_TIME + " TEXT,"
    + ");";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню