Android:删除数据库中的特定行

时间:2011-03-15 23:35:41

标签: android sqlite

对不起,如果这看起来很明显。我正在尝试编写一个方法来从String showId中删除一行。什么是最好的方法,并且游标只能用于选择还是用于删除和更新? 这是我到目前为止的两种方法:

public int deleteShowById1(String showId){
    Cursor cursor = db.rawQuery("DELETE FROM tblShows WHERE showId = '" + showId+"'", null);
    if (cursor.moveToFirst()) {
        return 1;
    } else
        return -1;
}

    public int deleteShowById2(String showId) {
    String table_name = "tblShows";
    String where = "showId='"+showId+"'";
    return db.delete(table_name, where, null);
}

2 个答案:

答案 0 :(得分:1)

正如我们从mysql查询中了解到的,它在android中也是一样。

    String query = "DELETE FROM " +TABLE_NAME+ " WHERE "  + COLUM_NAME+ " = " + "'"+VALUE +"'" ;

    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL(query);
    db.close();

根据数据类型,VALUE可能有也可能没有单引号。

答案 1 :(得分:0)

我倾向于使用第二种方法(db.delete),因为我认为使用rawQuery是不受欢迎的。

如果你做了一个select,那么循环游标进行更新或删除,这是有道理的,但传递一个游标进行删除或更新对我来说没有意义,因为程序不会知道如何解析光标结果以获得正确的字段。