마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 Cursor 질문이요

0 추천
안녕하세요 안드로이드 완전 생초보인데요...

 

Cursor로 쿼리실행 시키고

그 값이 없을 경우와 있는 경우로 나누어서 작업 처리하게 하려고 하는데요

단순하게 생각해서 그냥

String str;

Cursor c = mDB.rawQuery(sql, null);

c.moveToFirst();

if(c != null){

str = c.getString(0);

return str;

} else {

return null;

}

이렇게 했더니 else구문에 Dead Code뜨네요...

왜이런걸까요
익명사용자 님이 2014년 5월 14일 질문
sql 구문이 잘못된거 아닐까요 'ㅅ'?

3개의 답변

0 추천
메소드를 사용하는 쪽에서 Null 일 경우에 처리를 했나요?
인연 (31,880 포인트) 님이 2014년 5월 14일 답변
0 추천
SQLiteDatabase.rawQuery() 는 null값을 반환하지 않습니다.

결과값이 없는 경우엔 null이 아니라 크기가 0인 Cursor를 반환하지요.

그렇기 때문에 코드상 쓰신 분기문에서 else로는 분기되지 않기 때문에 Dead Code가 된거랍니다.

의도하신대로 분기를 하시려면 c != null 이 아니라 c.getCount() > 0 로 분기하시면 될겁니다.
레미_21 (2,920 포인트) 님이 2014년 5월 14일 답변
0 추천

if(c.moveToFirst()){

 

그냥 이렇게 하세요.

코딩인헬 (12,150 포인트) 님이 2014년 5월 14일 답변
...