在我的应用程序中,我将'_id'声明为字符串(因为我的ID包含破折号(' - '))。
这是我的代码:
/**
* Database creation SQL statement
*/
private static final String DATABASE_CREATE =
"create table " + DATABASE_TABLE + " ("
+ KEY_ImagePathID + " text not null, "
+ KEY_ImagePath + " text not null);";
现在在我的适配器类中,我有以下代码来删除数据:
public void delete_Pic_byID(String id){
mDb.delete(DATABASE_TABLE, KEY_ImagePathID+"="+id, null);
}
现在的问题是,当数据包含除数字字符以外的其他字符时,我无法删除数据。但是当ID是数字时,它完美地运行。我是Android开发的新手,我希望你能帮助我。
答案 0 :(得分:2)
你错过了单引号,所以改变
mDb.delete(DATABASE_TABLE, KEY_ImagePathID+"="+id, null);
到
mDb.delete(DATABASE_TABLE, KEY_ImagePathID+"='"+id + "'", null);
推荐的解决方案是使用参数化查询作为
mDb.delete(DATABASE_TABLE, KEY_ImagePathID + " = ?",new String[] { id });