Проблема с базой данных SQLite при удалении - PullRequest
0 голосов
/ 21 июля 2011

Привет всем Я новичок в Android. Я использую базу данных SQLite в своем приложении В то же время я пишу запросы с использованием + Как удалить из таблицы, где значение = + значение;

это мой запрос

String delete_query = "delete from " + tableName
                    + " where title = '" + title + "'";
            database.execSQL(delete_query);

Я хочу написать этот запрос, используя заполнитель? так что я попробовал

database.delete(tableName,  title + "?" , new String[] {title});

вместо "?" Я старался (?)/('?')/'?' но это дает мне ошибку ....

Может кто-нибудь сказать мне, как написать соответствующий запрос, используя? .....

Заранее спасибо. Mahaveer

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Насколько это возможно, старайтесь использовать как можно меньше необработанных запросов.Два преимущества:

  • Параметры запроса будут экранироваться системой (защита от внедрения SQL)
  • Код будет более читабельным

См. delete функция класса SQLiteDatabase

public int delete (таблица строк, String whereClause, String [] whereArgs)

Удобный метод для удаления строк в базе данных.

таблица таблица для удаления из

whereClause необязательное предложение WHERE, применяемое при удалении.Передача null удалит все строки.

Возвращает количество затронутых строк, если передано whereClause, 0 в противном случае.Для удаления всех строк и получения счетчика передайте «1» в качестве whereClause.

В вашем случае:

final String where = "title=?";
final String[] args = new String[] { title };
database.delete(tableName, where, args);
1 голос
/ 21 июля 2011

Убедитесь, что вы поставили знак равно : -

database.delete(tableName, title + "=?" , new String[] {title});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...