Intereting Posts
У TextView масштабируется его размер шрифта, чтобы заполнить родительский элемент? Ошибка Кордовой / Ионной сборки (иногда): не требуется требуемая среда Android-стили: разница между «style =» @ android: style / XYZ »и« style = »? Android: attr / XYZ? Target filter pathPrefix с вопросительным знаком Listview с заголовком заголовка раздела Обмен ссылкой на WhatsApp с мобильного сайта (а не приложения) для Android Android AudioRecord поддерживает частоты дискретизации Альтернатива веб-просмотру Android Как показать 3 точки в конце текста в текстовом виде Включите android: largeHeap в Android 4 и отключите его в Android 2.3 Создание программы TableLayout программно Почему метод getOAuthAccessToken всегда запускает исключение в twitter4j api? Как получить доступ к настройкам устройства программно? Как установить layout_span через код Встроенный компилятор Android Studio показывает красные ошибки, но компиляция с градием отлично работает

Удалите все строки из таблицы, выбрасывает nullpointer

Я пытаюсь написать функцию, которая будет удалять каждую строку в данной таблице, но я получаю исключение с нулевым указателем. Может ли кто-нибудь указать мне в правильном направлении? Вот код …

public void deleteall(){ SQLiteDatabase db = tweets.getWritableDatabase(); String delete = "TRUNCATE FROM tweets"; db.rawQuery(delete, null); } 

Solutions Collecting From Web of "Удалите все строки из таблицы, выбрасывает nullpointer"

Проверьте, нет ли tweets .

Я думаю, что проще использовать этот вызов, чем использовать rawQuery. Ваш rawQuery должен быть проанализирован, но с использованием метода delete он использует уже параметризованный запрос.

 db.delete('tweets',null,null); 

Просто для удаления всех строк, вы можете использовать следующий метод.

 void deleteAll() { SQLiteDatabase db= this.getWritableDatabase(); db.delete(table_name, null, null); } 
  dataBaseHelper = new DataBaseHelper(getApplicationContext(), DataBaseHelper.DataBaseName, null, 1); sqLiteDatabase = dataBaseHelper.getWritableDatabase(); if (sqLiteDatabase != null) { sqLiteDatabase.delete(DataBaseHelper.TableName, null, null); Toast.makeText(MainActivity.this, "Refresh", Toast.LENGTH_SHORT).show(); } else Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show(); break; } 

Я получал исключение нулевого указателя, а затем понял, что мой метод не вызывал db.open() . Добавлено, что (и db.close() ), и это сработало.

SQLite не имеет инструкции TRUNCATE , поэтому вы должны:

 public void deleteall(){ SQLiteDatabase db = tweets.getWritableDatabase(); String delete = "DELETE FROM tweets"; db.rawQuery(delete, null); } 

Установка второго параметра в значение null удаляет все строки.

 public int deleteAllRowsInTable() { SQLiteDatabase db = helper.getWritableDatabase(); // helper = MyDatabaseHelper String whereClause = null; // delete all rows String[] whereArgs = { null }; int count = db.delete(MyDatabaseHelper.TABLE_NAME, whereClause, whereArgs); db.close(); // don't forget to close the database return count; // number of rows affected } 

Вышеприведенный код был для иллюстрации. Это можно просто упростить до

 public int deleteAllRowsInTable() { SQLiteDatabase db = helper.getWritableDatabase(); int count = db.delete(MyDatabaseHelper.TABLE_NAME, null, null); db.close(); return count; } 

Правильный ответ таков:

 db.delete('tweets',"1",null); 

Из официальной документации Android: SQLiteDatabase