Как удалить всю запись из таблицы в sqlite с Android?

Мое приложение имеет две кнопки, первая кнопка предназначена для удаления записи на пользовательском входе, а вторая – для удаления всех записей. Но когда я хочу удалить данные, он отображает сообщение
«Ваше приложение было принудительно остановлено».

Пожалуйста, проверьте мой код и дайте мне некоторое предложение.

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); } 

Но он показывает следующую ошибку журнала кот.

 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) 

Solutions Collecting From Web of "Как удалить всю запись из таблицы в sqlite с Android?"

Вы пропустили пробел: db.execSQL("delete * from "+ TABLE_NAME);

Если это приведет к какой-либо ошибке вблизи * , вы можете рассмотреть возможность удаления * следующим образом:

 db.execSQL("delete from "+ TABLE_NAME); 
 db.delete(TABLE_NAME, null, null); 

Или, если вы хотите, чтобы функция возвращала количество удаленных строк ,

 db.delete(TABLE_NAME, "1", null); 

Из документации метода удаления SQLiteDatabase:

Чтобы удалить все строки и получить счетчик «1», как whereClause.

Чтобы удалить все строки в таблице, вы можете использовать:

 db.delete(TABLE_NAME, null, null); 

Нет необходимости использовать функцию «выполнить». Следующий код работал для меня :::

  db.delete(TABLE_NAME,null,null); db.close(); 

SQLite не поддерживает команду TRUNCATE. Вы должны использовать то, что вы пробовали в предыдущей строке:

 DELETE FROM `TABLE_NAME`; 

PS Вы можете оптимизировать свою программу, используя тот же экземпляр соединения с базой данных для всех ваших запросов в данной базе данных, а не для создания нового запроса для каждого запроса.

Попробуйте этот код, чтобы удалить все данные из таблицы.

 String selectQuery = "DELETE FROM table_name "; Cursor cursor = data1.getReadableDatabase().rawQuery(selectQuery, null); 
 SQLiteDatabase db = this.getWritableDatabase(); db.execSQL("DELETE FROM tablename"); //delete all rows in a table db.close(); 

Эта работа для меня 🙂

Используйте функцию удаления Sqlit с двумя последними нулевыми параметрами.

 db.delete(TABLE_NAME,null,null) 

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

Счастливое кодирование.

 public class Database { private static class DBHelper extends SQLiteOpenHelper { /** * Database name */ private static final String DB_NAME = "db_name"; /** * Table Names */ public static final String TABLE_CART = "DB_CART"; /** * Cart Table Columns */ public static final String CART_ID_PK = "_id";// Primary key public static final String CART_DISH_NAME = "dish_name"; public static final String CART_DISH_ID = "menu_item_id"; public static final String CART_DISH_QTY = "dish_qty"; public static final String CART_DISH_PRICE = "dish_price"; /** * String to create reservation tabs table */ private final String CREATE_TABLE_CART = "CREATE TABLE IF NOT EXISTS " + TABLE_CART + " ( " + CART_ID_PK + " INTEGER PRIMARY KEY, " + CART_DISH_NAME + " TEXT , " + CART_DISH_ID + " TEXT , " + CART_DISH_QTY + " TEXT , " + CART_DISH_PRICE + " TEXT);"; public DBHelper(Context context) { super(context, DB_NAME, null, 2); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_CART); } @Override public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) { db.execSQL("DROP TABLE IF EXISTS " + CREATE_TABLE_CART); onCreate(db); } } /** * CART handler */ public static class Cart { /** * Check if Cart is available or not * * @param context * @return */ public static boolean isCartAvailable(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); boolean exists = false; try { String query = "SELECT * FROM " + DBHelper.TABLE_CART; Cursor cursor = db.rawQuery(query, null); exists = (cursor.getCount() > 0); cursor.close(); db.close(); } catch (SQLiteException e) { db.close(); } return exists; } /** * Insert values in cart table * * @param context * @param dishName * @param dishPrice * @param dishQty * @return */ public static boolean insertItem(Context context, String itemId, String dishName, String dishPrice, String dishQty) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DBHelper.CART_DISH_ID, "" + itemId); values.put(DBHelper.CART_DISH_NAME, "" + dishName); values.put(DBHelper.CART_DISH_PRICE, "" + dishPrice); values.put(DBHelper.CART_DISH_QTY, "" + dishQty); try { db.insert(DBHelper.TABLE_CART, null, values); db.close(); return true; } catch (SQLiteException e) { db.close(); return false; } } /** * Check for specific record by name * * @param context * @param dishName * @return */ public static boolean isItemAvailable(Context context, String dishName) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); boolean exists = false; String query = "SELECT * FROM " + DBHelper.TABLE_CART + " WHERE " + DBHelper.CART_DISH_NAME + " = '" + String.valueOf(dishName) + "'"; try { Cursor cursor = db.rawQuery(query, null); exists = (cursor.getCount() > 0); cursor.close(); } catch (SQLiteException e) { e.printStackTrace(); db.close(); } return exists; } /** * Update cart item by item name * * @param context * @param dishName * @param dishPrice * @param dishQty * @return */ public static boolean updateItem(Context context, String itemId, String dishName, String dishPrice, String dishQty) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DBHelper.CART_DISH_ID, itemId); values.put(DBHelper.CART_DISH_NAME, dishName); values.put(DBHelper.CART_DISH_PRICE, dishPrice); values.put(DBHelper.CART_DISH_QTY, dishQty); try { String[] args = new String[]{dishName}; db.update(DBHelper.TABLE_CART, values, DBHelper.CART_DISH_NAME + "=?", args); db.close(); return true; } catch (SQLiteException e) { db.close(); return false; } } /** * Get cart list * * @param context * @return */ public static ArrayList<CartModel> getCartList(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); ArrayList<CartModel> cartList = new ArrayList<>(); try { String query = "SELECT * FROM " + DBHelper.TABLE_CART + ";"; Cursor cursor = db.rawQuery(query, null); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { cartList.add(new CartModel( cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_ID)), cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_NAME)), cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_QTY)), Integer.parseInt(cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_PRICE))) )); } db.close(); } catch (SQLiteException e) { db.close(); } return cartList; } /** * Get total amount of cart items * * @param context * @return */ public static String getTotalAmount(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); double totalAmount = 0.0; try { String query = "SELECT * FROM " + DBHelper.TABLE_CART + ";"; Cursor cursor = db.rawQuery(query, null); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { totalAmount = totalAmount + Double.parseDouble(cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_PRICE))) * Double.parseDouble(cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_QTY))); } db.close(); } catch (SQLiteException e) { db.close(); } if (totalAmount == 0.0) return ""; else return "" + totalAmount; } /** * Get item quantity * * @param context * @param dishName * @return */ public static String getItemQty(Context context, String dishName) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = null; String query = "SELECT * FROM " + DBHelper.TABLE_CART + " WHERE " + DBHelper.CART_DISH_NAME + " = '" + dishName + "';"; String quantity = "0"; try { cursor = db.rawQuery(query, null); if (cursor.getCount() > 0) { cursor.moveToFirst(); quantity = cursor.getString(cursor .getColumnIndex(DBHelper.CART_DISH_QTY)); return quantity; } } catch (SQLiteException e) { e.printStackTrace(); } return quantity; } /** * Delete cart item by name * * @param context * @param dishName */ public static void deleteCartItem(Context context, String dishName) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); try { String[] args = new String[]{dishName}; db.delete(DBHelper.TABLE_CART, DBHelper.CART_DISH_NAME + "=?", args); db.close(); } catch (SQLiteException e) { db.close(); e.printStackTrace(); } } }//End of cart class /** * Delete database table * * @param context */ public static void deleteCart(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); try { db.execSQL("DELETE FROM " + DBHelper.TABLE_CART); } catch (SQLiteException e) { e.printStackTrace(); } } 

}

Применение:

  if(Database.Cart.isCartAvailable(context)){ Database.deleteCart(context); } 
  getContentResolver().delete(DB.TableName.CONTENT_URI, null, null); 

Просто пиши

 SQLiteDatabase db = this.getWritableDatabase(); db.execSQL("delete from "+TableName); 

Может быть полезно.

 public boolean deleteAllFood() { SQLiteDatabase db = dbHelper.getReadableDatabase(); int affectedRows = db.delete(DBHelper.TABLE_NAME_FOOD, null, null); return affectedRows > 0; } public class DBProgram { private static DBProgram INSTANCE; private Context context; private DBHelper dbHelper; private DBProgram(Context context) { // burda bu methodu kullanan activity ile eileştiriyoruz this.dbHelper = new DBHelper(context); } public static synchronized DBProgram getInstance(Context context) { if (INSTANCE == null) { INSTANCE = new DBProgram(context); } return INSTANCE; } //********************************************** public boolean updateById(ProgramModel program) { SQLiteDatabase database = dbHelper.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(DBHelper.COLUM_NAME_P, program.getProgName()); contentValues.put(DBHelper.COLUM_DAY_P, program.getDay()); contentValues.put(DBHelper.COLUMN_WEIGHT_P, program.getWeight()); contentValues.put(DBHelper.COLUMN_SET_P, program.getSet()); contentValues.put(DBHelper.COLUMN_REPETITION_P, program.getRepetition()); int affectedRows = database.update(DBHelper.TABLE_NAME_PROGRAM, contentValues, "PROG_ID_P = ?", new String[]{String.valueOf(program.getId())}); return affectedRows > 0; } //********************************************** //********************************************** // TODO public boolean deleteProgramById(int id) { SQLiteDatabase database = dbHelper.getReadableDatabase(); int affectedRows = database.delete(DBHelper.TABLE_NAME_PROGRAM, DBHelper.COLUMN_ID_P + "= ?", new String[]{String.valueOf(id)}); // return bize etkilenen sıra sayısınıını temsil eder return affectedRows > 0; } //********************************************** //*************************************************** public boolean deleteProgramByName(String progName) { SQLiteDatabase database = dbHelper.getReadableDatabase(); final String whereClause = DBHelper.COLUM_NAME_P + "=?"; final String whereArgs[] = {progName}; int affectedRows = database.delete(DBHelper.TABLE_NAME_PROGRAM, whereClause, whereArgs); return affectedRows > 0; } //*************************************************** //************************************** get Meal // TODO WEB Get All Meals public List<ProgramModel> getAllProgram(String name) { List<ProgramModel> foodList = new ArrayList<>(); ProgramModel food; SQLiteDatabase database = dbHelper.getReadableDatabase(); final String kolonlar[] = {DBHelper.COLUMN_ID_P, DBHelper.COLUM_NAME_P, DBHelper.COLUM_DAY_P, DBHelper.COLUMN_WEIGHT_P, DBHelper.COLUMN_SET_P, DBHelper.COLUMN_REPETITION_P}; final String whereClause = DBHelper.COLUM_DAY_P + "=?"; final String whereArgs[] = {name}; Cursor cursor = database.query(DBHelper.TABLE_NAME_PROGRAM, kolonlar, whereClause, whereArgs, null, null, null); while (cursor.moveToNext()) { food = new ProgramModel(); food.setId(cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_ID_P))); food.setProgName(cursor.getString(cursor.getColumnIndex(DBHelper.COLUM_NAME_P))); food.setDay(cursor.getString(cursor.getColumnIndex(DBHelper.COLUM_DAY_P))); food.setWeight(cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_WEIGHT_P))); food.setSet(cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_SET_P))); food.setRepetition(cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_REPETITION_P))); foodList.add(food); } database.close(); cursor.close(); return foodList; } //************************************** //**************************************insert FOOD //TODO LOCAL insert Foods public boolean insertProgram(ProgramModel favorite) { boolean result = false; ContentValues contentValues = new ContentValues(); contentValues.put(DBHelper.COLUM_NAME_P, favorite.getProgName()); contentValues.put(DBHelper.COLUM_DAY_P, favorite.getDay()); contentValues.put(DBHelper.COLUMN_WEIGHT_P, favorite.getWeight()); contentValues.put(DBHelper.COLUMN_SET_P, favorite.getSet()); contentValues.put(DBHelper.COLUMN_REPETITION_P, favorite.getRepetition()); SQLiteDatabase database = dbHelper.getWritableDatabase(); long id = database.insert(DBHelper.TABLE_NAME_PROGRAM, null, contentValues); if (id != 1) { result = true; } database.close(); return result; } //*************************************************** // ******************************* SQLITE HELPER CLASS ****************** private class DBHelper extends SQLiteOpenHelper { private final Context context; private static final String DATABASE_NAME = "PROGRAM_INFO"; private static final String TABLE_NAME_PROGRAM = "PROGRAM"; private static final int DATABASE_VERSION = 2; // FOOD private static final String COLUMN_ID_P = "PROG_ID_P"; private static final String COLUM_NAME_P = "PROG_NAME_P"; private static final String COLUM_DAY_P = "PROG_DAY_P"; private static final String COLUMN_WEIGHT_P = "PROG_WEIGHT_P"; private static final String COLUMN_SET_P = "PROG_SET_P"; private static final String COLUMN_REPETITION_P = "PROG_REPETITION_P"; private final String CREATE_TABLE_PROGRAM = "CREATE TABLE " + TABLE_NAME_PROGRAM + " (" + COLUMN_ID_P + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUM_NAME_P + " TEXT, " + COLUM_DAY_P + " TEXT, " + COLUMN_WEIGHT_P + " INTEGER, " + COLUMN_SET_P + " INTEGER, " + COLUMN_REPETITION_P + " INTEGER)"; private static final String DROP_TABLE_PROGRAM = "DROP TABLE IF EXIST " + TABLE_NAME_PROGRAM; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); this.context = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_PROGRAM); Util.showMessage(context, "Database Created"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(DROP_TABLE_PROGRAM); Util.showMessage(context, "Database Upgrated"); onCreate(db); } @Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { super.onDowngrade(db, oldVersion, newVersion); } } }