Мое приложение имеет две кнопки, первая кнопка предназначена для удаления записи при вводе пользователем, а вторая кнопка предназначена для удаления всех записей. Но когда я хочу удалить данные, отображается сообщение
«Ваша заявка была принудительно остановлена».
Пожалуйста, проверьте мой код и дайте мне предложение.
public void deleteAll()
{
//SQLiteDatabase db = this.getWritableDatabase();
// db.delete(TABLE_NAME,null,null);
//db.execSQL("delete * from"+ TABLE_NAME);
db.execSQL("TRUNCATE table" + TABLE_NAME);
db.close();
}
и
public void delete(String id)
{
String[] args={id};
getWritableDatabase().delete("texts", "_ID=?", args);
}
Но это показывает следующую ошибку Log cat.
03-07 15:57:07.143: ERROR/AndroidRuntime(287): Uncaught handler: thread main exiting due to uncaught exception
03-07 15:57:07.153: ERROR/AndroidRuntime(287): java.lang.NullPointerException
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.example.MySQLiteHelper.delete(MySQLiteHelper.java:163)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.example.Settings$4.onClick(Settings.java:94)
-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.os.Handler.dispatchMessage(Handler.java:99)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.os.Looper.loop(Looper.java:123)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.app.ActivityThread.main(ActivityThread.java:4203)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at java.lang.reflect.Method.invokeNative(Native Method)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at java.lang.reflect.Method.invoke(Method.java:521)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at dalvik.system.NativeStart.main(Native Method)
Ответы:
Вы пропустили пробел:
db.execSQL("delete * from " + TABLE_NAME);
Также нет необходимости даже включать
*
, правильный запрос:источник
*
.или, если вы хотите, чтобы функция возвращала количество удаленных строк ,
Из документации метода удаления SQLiteDatabase :
источник
Чтобы удалить все строки в таблице, вы можете использовать:
источник
SQLite не поддерживает
TRUNCATE
команду. Вы должны использовать то, что вы пробовали в предыдущей строке:PS Вы можете оптимизировать свою программу, используя один и тот же экземпляр подключения к базе данных для всех ваших запросов к данной базе данных вместо создания нового для каждого запроса.
источник
Нет необходимости использовать функцию «execute». Следующий код работал для меня :::
источник
эта работа для меня :)
источник
Попробуйте этот код, чтобы удалить все данные из таблицы.
источник
rawQuery()
один не работает, поскольку он не выполняет SQL.используйте функцию удаления Sqlit с двумя последними нулевыми параметрами.
источник
Просто пиши
или
источник
Я использую этот класс для работы с базой данных. Надеюсь, он поможет кому-то в будущем.
Удачного кодирования.
}
Использование:
источник
источник
Это работает для меня. Разница здесь с execSQL и rawQuery. RawQuery чаще всего используется в поиске, а execSQL чаще всего используется в операциях применения.
источник
источник
Может быть полезным.
источник
этот метод удалить все данные из базы данных
источник
У меня есть функция, которая работает для меня в Unity (в сочетании с базой данных SQLite).
код C #:
источник
Вот простой способ удалить:
Здесь
whereClause
необязательно, передача null удалит все строки в таблице. Функция удаления вернет номер затронутой строки, еслиwhereClause
передано, в противном случае вернет 0.источник
Вы можете использовать два разных метода для удаления или любой запрос в SQLite Android
Первый метод
второй метод
использовать любой метод для вашего случая использования
источник
Использование SQLite_NET_PCL v1.6.292 в VStudio - многие документы и комментарии там устарели (я думаю).
Удалить все записи
источник