从sqlite数据库中删除-Android

从sqlite数据库中删除-Android,android,sqlite,Android,Sqlite,由于某种原因,我无法从数据库中删除。我试图将数据库中的_ID值与用户在编辑文本框中输入的值进行比较,如果匹配,则应删除整行 到目前为止,我得到的是: private static String[] DELETION = {_ID, TITLE, TIME, DETAILS}; private Cursor delete(){ calendarData = new CalendarData(this); SQLiteDatabase db = calendarDat

由于某种原因,我无法从数据库中删除。我试图将数据库中的_ID值与用户在编辑文本框中输入的值进行比较,如果匹配,则应删除整行

到目前为止,我得到的是:

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);
        }

    }
请任何帮助将不胜感激,我的编辑文本输入类型设置为数字

编辑:为了让它更清楚一点,我在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);


    }

我明白你的问题。您正在调用(edittext obj).getText(),它实际上并不返回返回的文本和可编辑的实例。在之后调用.toString(),然后将得到实际值


如果您添加一个日志来打印select语句,则很容易检测到这一点。。。仅供参考

不,没有错误,只是当我在databasePost your table creation语句中输入一个与ID号匹配的数字时,数据库中没有发生任何事情。接下来要检查的是对您的数据库执行一个开放式查询,并查看数据,看看它是否确实是您期望的数据。下一步发布这些结果,它将提供进一步的见解。我知道这些值在那里,即用户可以在屏幕上看到_ID号,然后当他们在编辑文本中输入他们想要删除的ID号时,他们点击按钮,它将删除它,但这并不意味着设计有缺陷且极易出错。您不应该使用EditText来删除用户数据,它应该被抽象为它所反映的实际对象。在这种情况下,这将是一个复选框列表,他们希望删除这些复选框。然而,这与问题无关。至于没有任何进一步数据的问题,我们无法帮助您。我以前将其作为.toString()使用,但正在尝试一些新的东西,但这不是问题(或者至少是唯一的问题)。不过谢谢你的帮助