我无法删除Sqlite数据库中的数据

时间:2014-09-18 13:30:04

标签: android sqlite

在我的应用程序中,我将'_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开发的新手,我希望你能帮助我。

1 个答案:

答案 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 });