【问题标题】:Deleting an entry in a SQLite database in android在android中删除SQLite数据库中的条目
【发布时间】:2012-10-15 21:19:23
【问题描述】:

我的名字是 Michael,我正在编写一个 Android 应用程序,它将作为一个非常基本的课程安排应用程序。到目前为止,我已经能够编写程序,以便能够创建新类并将其添加到数据库中,但是我似乎无法弄清楚如何从数据库中删除选定的条目。保存条目的按钮定义如下:

<Button
        android:id="@+id/save"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Save" />

它激活的监听器是:

private View.OnClickListener onSave=new View.OnClickListener() {
        public void onClick(View v) {
            String type=null;

            switch (types.getCheckedRadioButtonId()) {
                case R.id.math:
                    type="math";
                    break;
                case R.id.cs:
                    type="cs";
                    break;
                case R.id.pe:
                    type="pe";
                    break;
                case R.id.elective:
                    type="elective";
                    break;
            }

            if (restaurantId==null) {
                helper.insert(name.getText().toString(),
                                            address.getText().toString(), type,
                                            notes.getText().toString());
            }
            else {
                helper.update(restaurantId, name.getText().toString(),
                                            address.getText().toString(), type,
                                            notes.getText().toString());
            }

            finish();
        }
    };

“insert()”方法是我的助手类中添加条目的函数。

具体问题是我在帮助类中编写“remove()”函数时遇到问题。我曾尝试使用 getWritableDatabase.delete() 函数,但是找不到正确的参数。朝着正确方向的任何一点都会对我有很大帮助。提前谢谢你。

如果有帮助,这就是 insert() 函数:

public void insert(String name, String address,
            String type, String notes) {
        ContentValues cv=new ContentValues();

        cv.put("name", name);
        cv.put("address", address);
        cv.put("type", type);
        cv.put("notes", notes);

        getWritableDatabase().insert("restaurants", "name", cv);
    }

【问题讨论】:

    标签: java android database eclipse sqlite


    【解决方案1】:

    你对这样的事情感兴趣吗?

    public void deleteValue(String value)
        {
             SQLiteDatabase db = getWritableDatabase();
    
             String whereClause = "name"+"=?";
             String[]whereArgs = new String[] {String.valueOf(value)};
              db.delete(TABLE_NAME, whereClause, whereArgs);
              db.close();
              Log.v("done","deleted  row ");
        }
    

    这里 deleteValue() 的参数值是我们愿意删除行的基础(例如根据名称删除行),因此我们将其用作 where 子句。

    看线

    String whereClause = "name"+"=?";
                 String[]whereArgs = new String[] {String.valueOf(value)};
    

    这可以假设为 delete 语句,其中 where 子句为 where name = value;

    【讨论】:

    • 那么,如果我理解正确的话,这会根据类名删除数据库中的条目吗?
    • 否 @L337Man 。假设您有兴趣删除名称为“xyz”的餐厅,那么您可以将名称“xyz”作为参数传递给辅助类中的此函数
    • 感谢您的所有帮助。你不仅解决了我的问题,而且帮助我理解了解决方案。很抱歉,由于我的声誉不佳,我现在不能投票给你,但我非常感谢你快速准确的回复。
    • 嗯,这是我从这个 SO 中的其他人那里知道的。我要感谢他这一切。接受答案的任何方式都将帮助我理解它解决了您的问题。如果您需要删除表中的所有项目,请查看codinglookseasy.blogspot.in/2012/08/sqlite-database.html。(可能对您有帮助)
    • 当然,非常感谢。你帮了大忙。
    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多