0

私のアプリには、次の列を持つ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);
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 に答える