2012-04-25 5 views
0

Я не могу удалить из своей базы данных по какой-либо причине. Я пытаюсь сравнить значение _ID в базе данных с одним, введенным пользователем в поле EditText, и если оно соответствует, оно должно удалить всю строку.Удаление из базы данных sqlite - Android

Это то, что я получил до сих пор:

private static String[] DELETION = {_ID, TITLE, TIME, DETAILS}; 
private Cursor delete(){ 
     calendarData = new CalendarData(this); 
     SQLiteDatabase db = calendarData.getWritableDatabase(); 

     Cursor idToDelete = db.query(true, TABLE_NAME, DELETION, _ID+" = "+deleteAnAppointment.getText(), 
       null, null, null, null, null); 
     startManagingCursor(idToDelete); 
     return idToDelete; 
    } 

    private void selectToDelete(Cursor cursor){ 
     calendarData = new CalendarData(this); 
     SQLiteDatabase db = calendarData.getWritableDatabase(); 
     if(cursor.moveToNext()){ 
      db.delete(TABLE_NAME, _ID+" = "+deleteAnAppointment.getText(), null); 
     } 

    } 

Пожалуйста, любая помощь будет оценена, мой EditText устанавливается тип ввода на номер

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

Cursor toDelete = delete(); 
      selectToDelete(toDelete); 

Edit (2): создание Таблица

@Override 
    public void onCreate(SQLiteDatabase db){ 
     db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
        DATE + " LONG, " + 
        TITLE + " TEXT NOT NULL, " + TIME + " TEXT NOT NULL," + DETAILS + " TEXT NOT NULL);"); 
    } 

Edit (3): Я попробовал это, а также простой подход, но до сих пор ничего:

private void deleteAppointment(){ 
     calendarData = new CalendarData(this); 
     SQLiteDatabase db = calendarData.getWritableDatabase(); 

     db.delete(TABLE_NAME, _ID+" = "+deleteAnAppointment.getText(), null); 


    } 
+0

Вы получаете ошибки? – zapl

+0

нет, никаких ошибок, просто ничего не происходит в базе данных при вводе числа, которое соответствует идентификационному номеру в базе данных. – a7omiton

+0

Опубликуйте заявление о создании таблицы. – JoxTraex

ответ

0

Я вижу проблему. Вы вызываете (edittext obj) .getText(), который фактически не возвращает текст, который он возвращает, и экземпляр редактируемого. Вызов .toString() после и после этого вы получите фактическое значение.

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

+0

У меня было это как .toString() раньше, но он пытался попробовать что-то новое, но это не проблема (или только проблема по крайней мере). Спасибо за вашу помощь. – a7omiton

Смежные вопросы