0

我的应用程序有一个 sqlite 表,其中包含以下列:

  • CONTACT_ID = "_id",
  • CONTACT_NAME = "con_name",
  • CONTACT_USERID = "con_userid",
  • CONTACT_ACCID = "con_accid"。

该列的内容con_accid是类型String。表的主键是id。我想删除特定的数据con_accid。例如,我想删除所有具有con_accidas的项目的项目名称"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);
4

2 回答 2

1

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

database.delete(TABLE_CONTACTS, CONTACT_ACCID + " = ?", new String[] {"raja"});
于 2012-11-21T07:48:08.877 回答
0

检查“数据库”实例是用 .getWritableDatabase() 创建的。您的查询应该可以正常工作。

于 2012-11-21T08:01:15.487 回答