2010-05-12 4 views
0

Мой вопрос довольно прост. У меня есть таблица, где, скажем, x строк, с каждым идентификатором, но я не знаю, сколько строк у меня есть. Теперь я хочу по какой-то причине удалить последнюю строку моей таблицы ... Есть ли простой способ сделать это в Android? Я пытаюсь использовать last_insert_rowid в моей статье where ... но пока не повезло ... Любая идея сделать это с помощью инструментов sqlite для базы данных android?Удалить последнюю строку в таблице android

+1

Вы говорите о расположении таблицы или таблице базы данных? – RoflcoptrException

+0

Вы занимаетесь таблицей базы данных, таблицей HTML или TableLayout? – RoToRa

+0

ups извините, это было claer в моей голове. база данных, база данных sqlite – Sephy

ответ

6

Я предполагаю, что last_insert_rowid означает, что вы говорите о дБ.

DELETE FROM test WHERE id = (SELECT MAX(id) FROM test); 
+0

, похоже, работает. благодаря – Sephy

-1

Я видел этот пост, и я думаю, что смогу помочь, если у кого-то будет такая же проблема.

Что я сделал, это взять мой курсор в последнюю строку и получить его идентификатор, превратил его в строку для запроса db.delete.

Вы можете иметь одну строку в базе данных, но это ID может быть больше 1.

Для моего приложения я использовал Contract класс и реализован BaseColumns (так же, как и в андроида сайте Dev)

Надежда это помог ^^

//go to the last row 
cursor.moveToLast(); 

//get the index ID of the last row 
int lastItemId = cursor.getInt(cursor.getColumnIndex(ShiftsContract.Entry.COLUMN_NAME_ID)); 

//turn it into a string 
String slastItemId = String.valueOf(lastItemId); 

//define the column from which you want to delete 
String where = ShiftsContract.Entry.COLUMN_NAME_ID + "=?"; 

//from the selected column delete the retrieved ID 
String[] args = {slastItemId}; 

db.delete(ShiftsContract.Entry.TABLE_NAME, where, args); 
Смежные вопросы