Как удалить запись в базе данных SQLite? - PullRequest
1 голос
/ 03 июля 2019

Я пытался сделать DeleteEvent (), но он не работает. где мне нужно изменить код?

Это Java-код Android Studio.

public class DBStructure {enter code here
    public static final String DB_NAME =    "EVENTS_DB";
    public static final int DB_VERSION = 1;
    public static final String EVENT_TALE_NAME = "eventstable";
    public static final String EVENT = "event";
        public static final String TIME = "time";
    public static final String DATE = "date";
    public static final String MONTH = "month";
    public static final String YEAR = "year";

}

А это мой DeleteEvent ()

public void DeleteEvent(String event, String time, String date, String month, String year, SQLiteDatabase database){
    ContentValues contentValues = new ContentValues();
    contentValues.remove(DBStructure.EVENT);
    contentValues.remove(DBStructure.TIME);
    contentValues.remove(DBStructure.DATE);
    contentValues.remove(DBStructure.MONTH);
    contentValues.remove(DBStructure.YEAR);
    database.delete(DBStructure.EVENT_TALE_NAME, "?=? AND ?=?",
            new String[] {DBStructure.EVENT, event, DBStructure.TIME, time});
}

1 Ответ

1 голос
/ 03 июля 2019

Вам не нужно ContentValues, чтобы использовать delete() метод:

public void DeleteEvent(String event, String time, String date, String month, String year, SQLiteDatabase database){
    database.delete(
        DBStructure.EVENT_TALE_NAME, 
        DBStructure.EVENT + " = ? AND " + DBStructure.TIME + " = ? AND " + DBStructure.DATE + " = ? AND " + 
        DBStructure.MONTH + " = ? AND " + DBStructure.YEAR + " = ?",
        new String[] {event, time, date, month, year}
    );
}

Во втором аргументе вы создаете предложение WHERE, а 3d содержит в виде строкового массива параметры, которые заменят заполнители ?.

...