Как удалить существующие записи в таблице и вставить новое значение в sqlite?

Это может быть глупый вопрос, когда я получаю запись с сервера нужно удалить старые записи таблицы и нужно вставить новые значения в эту таблицу как я могу это сделать! до сих пор то, что я пытался!

public void DashInsertorUpdate(DashBoardModel dashobjj){
        String query=" SELECT  * FROM " + DashBoardModel.DashBoardTable +  " WHERE " + DashBoardModel.DashBoardLable +"";
        Cursor c = db.rawQuery(query, null);
        if (c.moveToFirst()) {
            DeleteDashboard(dashobjj);
        } else {
            InsertDashBoardLeadBySource(dashobjj);
        }

    }

 public void DeleteDashboard(DashBoardModel modelobj){
        db.execSQL(" DELETE FROM " + DashBoardModel.DashBoardTable + " WHERE " + DashBoardModel.DashBoardLable + "= '" + modelobj.getLabel() + "'");

    }

Но это не удаление существующих записей как я могу это сделать может ли кто-нибудь помочь мне!

2 ответа

  1. Пожалуйста, попробуйте эти

    public void deleteTypeDetails(){
            try{
                SQLiteDatabase db=this.getWritableDatabase();
                db.delete(Constants.TYPE_TABLE_NAME,"1",null);
                db.close();
            }catch (Exception e){
                e.printStackTrace();
            }
    
        }
    
  2. если все записи вашей таблицы должны быть удалены и заменены, я предлагаю этот способ:

    db.delete(TABLE_NAME, null, null);
    

    также вы можете удалить одну конкретную запись, используя этот код, который может найти эту запись, используя его идентификатор:

    private void deleteDashboard(int id) {
            SQLiteDatabase db = this.getWritableDatabase();
            String where = "id = ?";
            String[] whereArgs = new String[]{id + ""};
    
            try {
                db.delete(DashBoardModel.DashBoardTable, where, whereArgs);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

    С другой стороны, в соответствии с вашим вопросом, я думаю, что вы собираетесь обновить записи один за другим с новыми данными, полученными от сервера, который таким образом может помочь вам:

    ContentValues cv = new ContentValues();
                cv.put("field_name", value);
    
    db.update(DashBoardModel.DashBoardTable, cv,
                            where, whereArgs);
    

    Кстати, я надеюсь, что в вашей таблице есть первичный ключ, и вы можете использовать предложение where для поиска точной записи. (даже для удаления или обновления)

    Наконец, я предлагаю вам использовать новый ORM, доступный для Android, как Realm, of DBFlow, чтобы избежать всех этих проблем.