【问题标题】:How to delete a row from sqlite table in recycler view items in Android?如何在 Android 的回收站视图项目中从 sqlite 表中删除一行?
【发布时间】:2016-04-18 10:08:40
【问题描述】:

我正在尝试从 recyclerview 适配器中删除 sqlite 数据库中的一行。根据适配器的位置,我在 sqlite 中删除我的行,如下所示:

helper = new DBHelper(v.getContext());
database = helper.getWritableDatabase();
//statement = database.compileStatement("update result set ANS =? where SNO ='" + pos + "'");
// statement = database.compileStatement("delete result where SNO ='" + pos + "'");
//statement.bindString(1, ANS);
// statement.executeInsert();
database.delete("result",
"SNO = ? ",
new String[]{Integer.toString(pos)});
Log.d("pos", "" + pos);
//  helper.Delete(pos);
database.close();

但它没有在我的表中删除,并且我没有收到任何错误。我做错了什么?

【问题讨论】:

  • 你通过正确的位置??以及您的 log.d 值是多少

标签: android android-sqlite sql-delete


【解决方案1】:
    db = this.getWritableDatabase();
    int l;
    l = db.delete("result", SNO = ? " , new String[]{pos+1});
    if (l > 0) {
    Toast.makeText(context, "Removed "+(pos+1), Toast.LENGTH_SHORT).show();
    } else {
    Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show();
      }
    db.close();

这里你通过了“pos”,所以你没有通过正确的 SNO(pos)。

请检查 SNO 是否传递删除查询

【讨论】:

  • 现在我的问题是怎么回事,在列表视图中它从 0 开始,在数据库中从 1 开始,当我首先删除数据库时,我将删除第一个 t 元素,然后在数据库中没有这样的行..但是 listview 总是从 0 开始,所以它不会删除我的数据库.. 我能做些什么呢?
  • 你使用 pos+1 而不是 pos
  • 那你是怎么得到pos的?
  • listview 总是从 0 或 1(pos+1) 开始,但如果我删除 db,我们不会从 1 开始
【解决方案2】:

试试这个方法,

   public int deleteItem(String id) {

    open();
    int b = 0;
    try {

        b = db.delete(DATABASE_TABLE_POST_ITEMS, TAG_PLUS + " = '" + id + "'", null);
    } catch (Exception e) {

        e.printStackTrace();
    }
    close();
    return b;
}

用这句话来称呼它,

   holder.img_plus.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dbhelper.deleteItem((chatMessageList.get((int) v.getTag()).getListid()));
                    chatMessageList.remove(position);
                    notifyDataSetChanged();
                }
            });

【讨论】:

    猜你喜欢
    • 2020-06-28
    • 2019-02-17
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多