2012-04-25 167 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); 

編輯(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);"); 
    } 

編輯(3):我想這個問題,以及一個簡單的方法,但仍然沒有:

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

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


    } 
+0

你會得到錯誤嗎? – zapl 2012-04-25 18:05:37

+0

不,沒有錯誤,當我輸入與數據庫中的ID號相匹配的數字時,數據庫中沒有任何事發生 – a7omiton 2012-04-25 18:08:21

+0

發佈您的表創建語句。 – JoxTraex 2012-04-25 18:11:30

回答

0

我看到您的問題。您正在調用(edittext obj).getText(),它實際上並不返回它返回的文本和可編輯的實例。之後調用.toString(),然後您將獲得實際值。

如果您添加日誌以打印您的選擇語句,這將很容易檢測到... fyi

+0

我曾將它作爲.toString()之前,但正在嘗試一些新的東西,但這不是問題(或者至少只有問題)。但是,感謝您的幫助 – a7omiton 2012-04-25 19:19:47

相關問題