java - 在android中删除SQLite数据库中的条目

标签 java android database eclipse sqlite

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

<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);
    }

最佳答案

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

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;

关于java - 在android中删除SQLite数据库中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072854/

相关文章:

android - 如何为 API 级别 < 23 的项目设置重力

database - 如何在 R 中读取 MNIST 数据库?

php - 使用 session 获取多个数组值

java - 在 Java 中创建 NSStatusItem/Menubar 应用程序

java - 如果带有 getConstructor() 的内部类如何创建实例

java - AnimatedVectorDrawable 抛出 UnsupportedOperationException

ios - 不在 iOS 中的 sqlite 数据库中插入行

java - Hibernate:我不想删除 child

java - Camel Exchange 尝试获取正文时出现 NullPointerException

java - Android 闹钟正在运行,但秒数为零时却没有闹钟?