【问题标题】:How to delete the Existing Records in table and insert new Value in sqlite?如何删除表中的现有记录并在sqlite中插入新值?
【发布时间】:2016-09-24 09:10:40
【问题描述】:

每当我从服务器获取记录需要删除表的旧记录并需要将新值插入该表时,这可能是一个愚蠢的问题,我该怎么做!到目前为止我尝试过的是!

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() + "'");

    }

但它没有删除现有记录我该怎么做谁能帮助我!

【问题讨论】:

  • db.execSQL("delete from "+ TABLE_NAME);
  • db.delete(TABLE_NAME, null, null);
  • select 语句是做什么的?您使用了 WHERE 子句,但条件是什么,您确定从该查询中获得结果吗?
  • 怎么做首先需要删除现有记录,然后需要从服务器插入新记录
  • @MedlinMoni 你想删除所有记录或特定

标签: android sqlite


【解决方案1】:

请试试这些

public void deleteTypeDetails(){
        try{
            SQLiteDatabase db=this.getWritableDatabase();
            db.delete(Constants.TYPE_TABLE_NAME,"1",null);
            db.close();
        }catch (Exception e){
            e.printStackTrace();
        }

    }

【讨论】:

  • 感谢 ganesh 在与服务器建立连接时需要删除现有记录并插入新记录
  • nooo 我需要做的是每当我与服务器建立连接时首先需要删除现有的并插入新的如何做到这一点
  • 请尝试以上答案
【解决方案2】:

如果你的表的所有记录都必须删除和替换,我建议这样:

db.delete(TABLE_NAME, null, null);

您也可以使用此代码删除一条特定记录,该代码可以使用它的 ID 找到该记录:

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 子句来查找确切的记录。 (即使是删除或更新)

最后,我建议您使用可用于 Android 的新 ORM,例如 DBFlow 的 Realm,以避免所有这些麻烦。 ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2016-08-15
    • 2011-12-19
    • 2011-05-17
    • 2021-03-17
    相关资源
    最近更新 更多