2012-11-21 71 views
0

我的应用程序具有其具有下述列的SQLite表:如何删除SQLite中特定列的特定数据?

  • CONTACT_ID = “_id”,
  • CONTACT_NAME = “con_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_name'中的名字,其中'con_accid = raja'? – Luksprog

+0

我想删除表中所有可用行的'con_accid = raja'整行。 –

回答

1

这应该删除数据库中的所有行con_accid = raja

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

检查“数据库“实例使用.getWritableDatabase()创建。而你的查询应该没有任何问题。

+0

实例可用,我在查询中遇到问题,为什么-ve标记? –