안드로이드 개발 질문/답변
(글 수 45,052)
public void insert(ContentValues contentValues) {
mDatabase = mOpenHelper.getWritableDatabase();
long num = mDatabase.insert(Constants.DATABASE.TABLE.MEMO.NAME, null, contentValues);
Log.e(TAG,"INSERT 된 컬럼 갯수 : " + num);
mDatabase.close();
}
public void delete(String whereClause, String[] whereArgs) {
mDatabase = mOpenHelper.getWritableDatabase();
long num = mDatabase.delete(Constants.DATABASE.TABLE.MEMO.NAME, whereClause, whereArgs);
Log.e(TAG, "DELETE 된 컬럼 갯수 : " + num);
mDatabase.close();
}
위에 코드는 INSERT하는 메서드로 DB에 입력하는데에는 문제가 없어요
문제는 DELETE하는 과정인데 아래 메서드대로 했을 경우입니다.
컬럼을 하나 INSERT했을 경우에는 DELETE가 제대로 수행이 됩니다
그런데 세개 이상 INSERT를 할 경우에 마지막에 INSERT한 컬럼은 DELETE가 되는데
이전에 INSERT된 컬럼 두개는 DELETE 되지 않고 메서드에 DELETE가 수행이 됐을 때 삭제된 갯수가 0으로 나옵니다(num이 0으로 나와요;)
어디가 문제인지 지적좀 부탁드릴게요
2013.01.17 19:01:37
where조건은 String whereClause에는 키로 쓰일 애트리뷰트들, String[] whereArgs에는 해당 값으로 들어갈 대상이 들어가있어요..
하나 입력하거나 세개를 입력해도 그 중에 제가 원하는 대상은 지워지는거 보면 조건은 맞는거같은데
세개 입력했을때 두개는 DB에 남아서 안지워지더라구요....ㅠ
2013.01.17 20:14:54
ㅎㅎ 제가 DB를 잘몰라서요..
DELETE를 쓸 때 키가 두개 필요해서 whereClause와 whereArgs를 함께 썼는데 다른 방법이 있나요?




delete메소드 수행할때 where조건이 제대로 되어있나요?
delete메소드 수행후 조회할경우 3개 row중에 2개가 조회가 되나요?
위에 코드자체에서는 문제가 없어야할거구요(실제로 삭제는 되니까요)
예상되는 문제는 where조건이 안맞아서 테이블 내용이 전체삭제 되어버렸다거나
조건에 맞는 row가 없어서 삭제가 안된다던가 할것 같습니다.