由于某种原因,我无法从我的数据库中删除。我试图比较数据库中的_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);
}
你会得到错误吗? – zapl 2012-04-25 18:05:37
不,没有错误,当我输入与数据库中的ID号相匹配的数字时,数据库中没有任何事发生 – a7omiton 2012-04-25 18:08:21
发布您的表创建语句。 – JoxTraex 2012-04-25 18:11:30