删除Android中的SQLite数据库中的条目
问题描述:
我的名字是迈克尔,我正在编写一个Android应用程序,将作为一个非常基本的课程安排应用程序。到目前为止,我已经能够编写程序,以便能够创建新的类并将其添加到数据库中,但我似乎无法弄清楚如何从数据库中删除选定的条目。这节省了这些项目的按钮定义如下:删除Android中的SQLite数据库中的条目
<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();
}
};
凡“插入()”方法是,增加了我的辅助类功能入口。
具体的问题是我在编写帮助器类中的'remove()'函数时遇到了麻烦。我曾尝试使用getWritableDatabase.delete()函数,但我无法找到正确的参数。任何正确的方向对我来说都是一大帮助。先谢谢你。
如果有帮助可言,这是插入()函数:
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)};
这可以假定为与where子句为where name = value;
所以,如果我理解正确的话,这将删除基于类的名称在数据库中的项delete语句? – Mike
否@ L337Man。假设您有兴趣删除名称为“xyz”的餐厅,那么您可以将名称“xyz”作为参数传递给帮助程序类中的此函数 –
感谢您的全力帮助。你不仅解决了我的问题,而且帮助我理解了解决方案。很抱歉,由于我的声誉很低,我现在无法向您致敬,但我非常感谢您的快速准确回复。 – Mike