2013-12-15 3 views
2

나는 데이터베이스를 android에 만들려고 노력해 왔습니다. 데이터베이스가 저장되고 있습니다 (데이터베이스를보기 위해 mySQL 뷰어를 사용했습니다). 그러나 특정 항목을 확인하려고 할 때 boolean을 사용하면 항상 true를 반환합니다.데이터베이스 쿼리는 항상 true를 반환합니까?

MainActivity.java

public void onClick(View view) { 
     // TODO Auto-generated method stub 
     switch(view.getId()){ 
     case R.id.save: 
      db.addContact(new Contact(input.getText().toString(), "9100000000")); 
      auth.setText("save"); 
      break; 
     case R.id.check: 
      auth.setText("check");   
      if(db.getContact(output.getText().toString())){ 
       auth.setText("Sucess"); 
      } 
      else{ 
       auth.setText("Fail"); 
      } 
      break; 
     } 
    } 

DatabaseHandler.java

// Getting single contact 
public boolean getContact(String id) { 
     SQLiteDatabase db = this.getReadableDatabase(); 

     Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, 
       KEY_NAME, KEY_PH_NO }, KEY_NAME + "=?", 
       new String[] { String.valueOf(id) }, null, null, null, null); 
     if (cursor != null){ 
      cursor.moveToFirst(); 
      return true; 
     } 

     return false; 
    } 
+1

'SQLiteDatabase.query'가 null을 반환하지 않는다고 생각하십시오; 빈 커서 만 – amdixon

답변

2

은 내가 getCount() 메서드를 호출 ... 하나 명의 변경을 시도 할 것입니다.

// I think you don't need this null check, but it shouldn't hurt anything. 
if (cursor != null){ 
    // cursor.moveToFirst(); /* I don't think you need this either. */ 
    return (cursor.getCount() > 0); 
} 
return false; 
관련 문제