2012-04-25 25 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

+0

いいえ、エラーはありません。データベースのID番号に一致する番号を入力すると、データベースに何も起こりません。 – a7omiton

+0

テーブル作成ステートメントをポストします。 – JoxTraex

答えて

0

:私はシンプルなアプローチが、まだ何もだけでなく、これを試してみました。あなたは(edittext obj).getText()を呼び出しています。これは実際に返されるテキストと編集可能なインスタンスを返しません。その後に.toString()を呼び出すと、実際の値が得られます。

選択した文を印刷するためにログを追加した場合、これは検出しやすくなります... fyi

+0

以前は.toString()として使用していましたが、それは問題ではありません。しかし、助けてくれてありがとう – a7omiton

関連する問題