对不起,如果这看起来很明显。我正在尝试编写一个方法来从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);
}
答案 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,那么循环游标进行更新或删除,这是有道理的,但传递一个游标进行删除或更新对我来说没有意义,因为程序不会知道如何解析光标结果以获得正确的字段。