Ошибка удаления строки в Android sqlite - PullRequest
0 голосов
/ 11 сентября 2011

Я пытаюсь удалить строку в таблице, где я знаю, что строка существует.Я попытался:

final String s = "DELETE from %s where Name = '%s'";        
String sql = String.format(s, GetTableName(), sListName);
Cursor cr= GetUserDb().GetSQLiteDb().rawQuery(sql, null);

и попытался:

String sWhere = String.format("Name = '%s'", sListName);
long lRowsUpdated = GetUserDb().GetSQLiteDb().delete(GetTableName(), sWhere, null);


** sWhere >> Name = 'groceries' **
** sql >> DELETE from Lists where Name = 'groceries' **

Нет исключений сбоя или logcat, но строка все еще не удалена.Я что-то упускаю?Может быть, у меня есть блокировка в другом месте, или мне нужно установить определенные разрешения в моем манифесте или что-то в этом роде?

Ответы [ 3 ]

2 голосов
/ 11 сентября 2011

Использовать delete () из SqliteDatabase - возвращает количество затронутых строк.Например, удалить (имя таблицы, "имя =?", Новая строка [] {aString})

0 голосов
/ 11 сентября 2011

если столбец, по которому вы пытаетесь получить ключ, это sListName, вам нужно удалить, где sListName = '% s', если у вас нет другого столбца с именем Name, который вы пытаетесь удалить, но если это не такВаш первичный ключ, в итоге вы можете получить две строки при удалении.

Вы всегда можете использовать эмулятор и оболочку adb и просто запустить команду оболочки sqlite3 и попробовать свои операторы SQL.Если вы наберете свой и получите 0 строк, то вы знаете, что оператор не работает, а не Java.

Если вы не используете встроенные CurorAdapters или ContentProviders, ваш первичный ключ не требуетсябыть названным _ID, он может быть назван как угодно.Что касается типа, в SQLite3 это просто предложение о том, как его привести, вы можете поместить любые данные в любой столбец, который хотите.

0 голосов
/ 11 сентября 2011

Попробуйте это:

       SQLiteStatement stmt = db.compileStatement("DELETE FROM " + getTableName() + "WHERE Name=?");
       stmt.bindString(1, sListName);
   stmt.execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...