【问题标题】:Android - delete a row from sqliteAndroid - 从 sqlite 中删除一行
【发布时间】:2012-04-18 21:53:42
【问题描述】:

我正在开发一个应用程序来发展我的知识到目前为止,我已经创建了一个日历应用程序,用户可以在单击日期时进行预约。然后我有一个删除按钮,它打开在一个新活动中创建的所有约会,我有:一个显示所有约会的列表视图一个显示所选约会(由用户选择删除)的文本视图和一个按钮删除。我希望此按钮从数据库中删除选定的约会(行)。到目前为止,我已经设法写入数据库并显示信息,但我似乎无法让它删除我想要的行..

这就是我使用列表视图中选定的约会(行)填充文本视图的方式

//populate textview with selected item from sqlite data
    public void onListItemClick(ListView parent, View v, int position, long id) {
        selection.setText(stg1[position]);
        delBtn.setEnabled(true);
    }

这是我的删除按钮的动作监听器,我需要在此处放置什么来删除选定的行(我尝试了很多方法,但我的应用程序崩溃了

public void onClick(View v) {
    switch(v.getId()){

    case R.id.removeBtn:

        break;
    }

}

希望我足够清楚..任何帮助将不胜感激,非常感谢

【问题讨论】:

  • 编写删除查询(与您执行选择查询的方式相同)。剩余流量保持不变。
  • 我在您的代码中看不到任何 SQL。编写 DELETE 查询。
  • 好的,会试一试的,谢谢你们俩的帮助
  • 删除查询应该放在哪里?

标签: android xml eclipse sqlite delete-row


【解决方案1】:

不清楚是要从 SQLite 表还是从列表视图中删除一行。

如果你想从列表视图中删除一行,只需从数组中删除该项目,然后调用notifyDataSetChanged()

如果要从 SQLite DB 中删除该行,则需要编写 DELETE 查询:http://www.sqlite.org/lang_delete.html

【讨论】:

  • yh 我需要了解删除查询.. 谢谢你的回复
  • 删除查询应该放在哪里?
  • 可能在onClick方法中
【解决方案2】:

您可以使用以下内容:

db.delete("UsersTable", usernameString +"="+usernameString+ " AND " +this.userId+"="+userId)

【讨论】:

    【解决方案3】:

    假设您使用的是 SQLiteDatabase 类,您始终可以执行以下操作:

    db = SQLiteDatabase.openDatabase("/data/data/yourpackage/databases/dbname.db", null, SQLiteDatabase.OPEN_READWRITE);
    db.execSQL("delete from your_table where your_column = '" + some_value + "'");
    db.close();
    

    我不知道您的代码范围,但根据您提供给我们的内容,我会说将该块放入您的 onClick()

    然后就像 slayton 所说,使用 notifyDatasetChanged() 更新您的列表。否则它将从数据库中删除,但在您重新启动填充列表的查询之前,您永远不会知道它。

    您可能还想创建一个全局变量来说明当前选择的列表项。这样,您可以在 onListItemClick() 中设置它,然后根据您之前在 onClick 中选择的内容快速删除它,而不必乱用那个 switch 语句。

    【讨论】:

      【解决方案4】:

      这就是你需要的。 在您的数据库处理程序类中,添加

        int id=1;
        SQLiteDatabase db = this.getWritableDatabase();
        db.execSQL("DELETE FROM "+TABLE_NAME+" WHERE "+KEY_ID+" = "+id+";");
        db.close();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 2012-05-19
        相关资源
        最近更新 更多