【问题标题】:Delete command in a database删除数据库中的命令
【发布时间】:2019-03-18 22:57:19
【问题描述】:

在我的项目中,在数据库中,我有一个书签表。我想从这个表中删除行。我编写了一个方法来删除带有 ID 的行。但我的代码不起作用。

这是我的删除方法(删除数据库中的书签):

public void delete_bookmark(int id) {
        Log.e("delete_bookmark"," is running");
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL("DELETE FROM " + TABLE_BOOKMARKS + " WHERE " + BOOKMARK_ID + " = " + id);
        db.close();
}    

这段代码在我的活动中:

public void deleteBookmark() {
     SQLiteHelper sqLiteHelper = new SQLiteHelper(this);
     sqLiteHelper.delete_bookmark(ads.getId());
     Log.e("bookmarktable", sqLiteHelper.get_bookmarks().toString());
     Toast.makeText(this, "از لیست علاقه مندی ها حذف شد", Toast.LENGTH_SHORT).show();
}

【问题讨论】:

  • BOOKMARK_ID 变量还是列名?
  • @AyushGupta BOOKMARK_ID 是列名
  • 那你为什么要用+把它附加到字符串中?
  • 请不要对表名和字段使用硬编码。
  • @KlingKlang 好的,谢谢我明白了。在那种情况下,你是对的。 可能TABLE_BOOKMARKS 也是如此。

标签: android sqlite android-sqlite


【解决方案1】:

试试这个

public void Delete(String tablename, String pos) {
    try {
        db.delete(tablename, "BOOKMARK_ID" + "='" + pos + "'", null);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-10
    • 2021-09-23
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    相关资源
    最近更新 更多