DB에 저장하는데요

 

ListView 의 목록 중 체크가 3개가 되어 있다가 이중에 하나를 체크 해지 합니다.

 

그럼 해지 된 목록은 DB에서 삭제 하고 싶습니다.

 

다음은 제가 작성한 코드 입니다.

 

빨간 부분에서 에러가 발생하는데.. 무엇이 잘못 되었는지 확인 좀 부탁드립니다.

 

 

public void save_DB() {
  // TODO Auto-generated method stub
  
  ListView v = getListView();
  Adapter adapter = v.getAdapter();
  SparseBooleanArray checked = v.getCheckedItemPositions();
  String id;
  String name = null;
  String number;
  Cursor c;
  Cursor DB_c;
  boolean bool = true;
  db_phone = new Phone_Number_DB(this, null, null, 0);

  try{
   db = db_phone.getWritableDatabase();
  }catch(SQLiteException ex){
  // db = db_phone.getReadableDatabase();
  
  }
    
  for (int i = 0; i < checked.size(); i++) { 
   if(checked.valueAt(i) == true) {
    c = (Cursor) adapter.getItem(i);
    id = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));
    name = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
    number = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
     
    DB_c = db.rawQuery("SELECT id FROM phone_number;", null);
   
    while(DB_c.moveToNext()){
     if(id.equals(DB_c.getString(0).toString()))
     {
      Log.i("TAG", id + "같은 값이 있습니다! ");
      bool = false;
      break;
     }
     else
     {
      bool = true;
     }
    }
    if(bool)
    {
     Log.i("TAG", id + "같은 값이 없습니다 ! 새로 추가!!");
     db.execSQL("INSERT INTO phone_number VALUES(null, '"+id+"', '" + name + "', '" + number +"');");
     bool = false;
    }
   }
   else
   {
    c = (Cursor) adapter.getItem(i);
    id = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));
    Toast.makeText(this, "id : "+id, Toast.LENGTH_SHORT).show();
       db.execSQL("DELETE FROM phone_number where id="+id+";", null);
   }

   
  }
  DB_c = db.rawQuery("SELECT id, name, number FROM phone_number", null);
  
  Log.i("TAG", "--------- table 확인 !! ---------------");
  while(DB_c.moveToNext()){
   Log.i("TAG", DB_c.getString(0).toString());
   Log.i("TAG", DB_c.getString(1).toString());
   Log.i("TAG", DB_c.getString(2).toString());
  }
  Log.i("TAG", "--------- table 확인 !! ---------------");

 }