Удалить все элементы с определенным идентификатором из базы данных - PullRequest
0 голосов
/ 20 июня 2011

В моей базе данных у меня есть 2 таблицы, одна со списками и одна с продуктами.Каждый продукт имеет идентификатор, который означает номер списка, к которому он принадлежит.Я хочу создать меню для удаления всех товаров из списка.Я написал этот метод, но он не работает.Любая идея?

public boolean deleteproductall(long rowId) {
        return mDb.delete(DATABASE_TABLE_2, KEY_LISTID + "=" + rowId, null) > 0;
    }

таблица 2:

private static final String DATABASE_TABLE_2 = "Products";

public static final String KEY_ROWID2 = "_id";
public static final String KEY_LISTID = "ListId";
public static final String KEY_ITEM = "Item";
public static final String KEY_QUANTITY = "Quantity";
public static final String KEY_UNITS = "Units"

и для просмотра только продукта из списка я использовал:

public Cursor fetchListId(String listId) throws SQLException {
        Cursor mCursor = mDb.query(true, DATABASE_TABLE_2, new String[] {
                KEY_ROWID2, KEY_LISTID, KEY_ITEM, KEY_QUANTITY, KEY_UNITS },
                KEY_LISTID + "=" + listId, null, null, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Пожалуйста, попробуйте это. Это решит вашу проблему.

public void deleteProductAll(long rowId)
{
    try
    {
        mDb.execSQL("DELETE FROM Products WHERE ListId = " + rowId);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}
0 голосов
/ 20 июня 2011

KEY_LISTID определяется как String, где rowId - это long. Измените это на

return mDb.delete(DATABASE_TABLE_2, KEY_LISTID + "=" + Long.valueOf(rowId), null) > 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...