android: SQLite删除数据

删除数据对你来说应该就更简单了,因为它所需要用到的知识点你全部已经学过了。 SQLiteDatabase 中提供了一个 delete()方法专门用于删除数据,这个方法接收三个参数,第一 个参数仍然是表名,这个已经没什么好说的了,第二、第三个参数又是用于去约束删除某一 行或某几行的数据,不指定的话默认就是删除所有行。

是不是理解起来很轻松了?那我们就继续动手实践吧,修改 activity_main.xml 中的代码, 如下所示:

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

android:orientation="vertical" >

……

 

<Button android:id="@+id/delete_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Delete data"

/>

</LinearLayout>

仍然是在布局文件中添加了一个按钮,用于删除数据。然后修改 MainActivity 中的代码, 如下所示:

 

public class MainActivity extends Activity {

 

private MyDatabaseHelper dbHelper;

 

 

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 2);

……

Button deleteButton = (Button) findViewById(R.id.delete_data);

deleteButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

db.delete("Book", "pages > ?", new String[] { "500" });

}

});

}

 

}

可以看到,我们在删除按钮的点击事件里指明去删除 Book 表中的数据,并且通过第二、 第三个参数来指定仅删除那些页数超过 500 页的书籍。当然这个需求很奇怪,这里也仅仅是 为了做个测试。你可以先查看一下当前 Book 表里的数据,其中 The Lost Symbol 这本书的页 数超过了 500 页,也就是说当我们点击删除按钮时,这条记录应该会被删除掉。

现在重新运行一下程序,界面如图 6.25 所示。

图   6.25

点击一下 Delete data 按钮后,再次输入查询语句查看表中的数据情况,结果如图 6.26所示。

图   6.26

 

这样就可以明显地看出,The Lost Symbol 这本书的数据已经被删除了。

posted @ 2016-03-03 14:49  dodo-yufan  阅读(...)  评论(... 编辑 收藏