2012-11-21 3 views
0

내 응용 프로그램은 다음과 같은 열이있는 SQLite는 테이블이 있습니다SQLite의 특정 열에서 특정 데이터를 삭제하는 방법?

  • CONTACT_ID = "_id를"= "con_name"
  • CONTACT_NAME,
  • CONTACT_USERID = "con_userid",
  • CONTACT_ACCID을 = " con_accid ".

con_accid의 내용은 String입니다. 테이블의 기본 키는 id입니다. 특정 데이터 con_accid을 삭제하고 싶습니다. 예를 들어 con_accid의 모든 항목의 항목 이름을 "raja"으로 삭제하려고합니다. 나는 다음과 같은 다른 쿼리를 시도했지만 모두 작동하지 않습니다 :

Cursor cursor = database.query(ContactsDB.TABLE_CONTACTS, allColumns, 
      ContactsDB.CONTACT_ACCID + "= ' " + comment +"'" , null, null, null, null); 
    if (cursor != null) { 
     cursor.moveToFirst(); 
     while (!cursor.isAfterLast()) { 
      Log.i(TAG, "delete"); 
      ContactsInfo _comment = cursorToComment(cursor); 
      long id = _comment.getId(); 
      database.delete(ContactsDB.TABLE_CONTACTS, ContactsDB.CONTACT_ID + "=" + id , null); 
      cursor.moveToNext(); 
     } 
    } 

및이 :

String query = "SELECT * FROM todo WHERE con_accid='" + comment; 
Cursor cursor = database.rawQuery(query,null); 
+0

귀하의 질문은 약간 모호합니다. 'con_accid = raja'가있는 ** 전체 ** 행 데이터 (모든 열)를 삭제 하시겠습니까, 아니면 ** con_accid = raja'에서'con_name'의 이름 만 ** 삭제 하시겠습니까? – Luksprog

+0

전 테이블에서'con_accid = raja' 행을 모두 삭제하고 싶습니다. –

답변

1

이 데이터베이스에있는 모든 행을 삭제해야하는 위치 con_accid = raja :

database.delete(TABLE_CONTACTS, CONTACT_ACCID + " = ?", new String[] {"raja"}); 
0

확인 " 데이터베이스 "인스턴스는 .getWritableDatabase()로 생성됩니다. 그리고 쿼리는 아무 문제없이 작동해야합니다.

+0

인스턴스를 사용할 수 있습니다. 쿼리에서 문제가 발생했습니다. 왜, -ve 표시입니까? –

관련 문제