public void delete(int id1) {
Log.i("DDD","DD7");
SQLiteDatabase db = getReadableDatabase();
String delete = "DELETE from " + DB_table
+ " WHERE id=" + id1;
db.execSQL(delete);
}
보시다시피 로그가있는데 저것은 정상적으로 작동하는 것으로 봐선 명령문의 이상으로 보여집니다..
왜이런지 수정해주시면 감사하겠습니다~~
LogCat 로그 한번 보면 될것같은데요;;
그냥 안된다고 하면 안되고 로그라도 보시고, 로그가 이해가 안된다 싶으면 로그를 같이 올려주셔야죠....
getReadableDatabase() 는 데이터베이스를 읽기 위해서 사용하는 매서드가 아닐런지요?
delete 구문은 쓰기 권한인데 여기서 뭔가 잘못된 것이 아닐까 하고 추측해 봅니다.
getWritableDatabase() 로 해보시고 그 결과를 알려주시겠어요? (저두 공부중이라서요. ^^)
where절에서 문제인거 같은데.. 그럼 column속성을 다시 확인해 봐야 겠네요..
column명이 일단 id가 맞는지 속성이 int같은 숫자 타입인지도 맞는지 확인을 해봐야겠네요
숫자로 적혀있어도 문자열 타입이면 따옴표 같은거 넣어야 합니다.
이것도 아니라면 getWritableDatabase()로도 해보셔야 겠네요
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
저도 그 문제에 대해서 고민한 적이 있엇는데 저와 유사한 경우인 것 같습니다.
_id는 autoIncrese로 두셨으면 sqlite에서는 1부터 레코드가 하나씩 추가될때마다 1씩 저절로 증가합니다.
즉 . 첫번째 레코드는 1, 두번쨰는 2....3.4.5.6.. 이런식으로 증가합니다.
그러다가 갑자기 두번째 레코드를 지우려고 시도 합니다. 2번을 지우게 되면 3,4,5,6 이 제 생각에는 저절로 2,3,4,5로 한칸씩
땡겨올 것이라 생각했지만 id값은 primary key로 설정해 두었기 때문에 변하지 않습니다.
아마 이부분에서 오류가 생겼던 것이 아닌가 생각됩니다. 이 부분 생각하고 찾으려는 id값을
잘 처리해주시면 원하는 결과를 잘 얻으실 수 있을 것입니다.
db.execSQL -> db.delete()
괄호안에 변수들은 이클립스에 나오는걸로 적절히 사용하세요.