SQLite数据库删除时出错

时间:2011-07-21 08:11:21

标签: android sqlite

大家好,我是Android新手。 我在我的应用程序中使用SQLite DataBase 同时我用+编写了查询 像从tablename中删除value = + value;

这是我的查询

String delete_query = "delete from " + tableName
                    + " where title = '" + title + "'";
            database.execSQL(delete_query);

我想用占位符编写这个查询? 所以我试过

database.delete(tableName,  title + "?" , new String[] {title});
而不是“?”我试过了 (?)/('?')/'?' 但它给了我一个错误......

任何人都可以告诉我如何使用?.....

编写适当的查询

先谢谢。 MAHAVEER

2 个答案:

答案 0 :(得分:1)

确保您已将相等符号: -

database.delete(tableName, title + "=?" , new String[] {title});

答案 1 :(得分:1)

尽可能尝试使用较少的原始查询。两个优点:

  • 查询参数将被系统转义(防止SQL注入)
  • 代码更具可读性

请参阅SQLiteDatabase类的delete函数

  

public int delete(String table,String whereClause,String []   whereArgs)

     

删除中的行的便捷方法   数据库。

     

表格要从

中删除的表格      

whereClause 可选的WHERE子句   删除时申请。传递null将删除所有行。

     

返回传入whereClause时受影响的行数,0   除此以外。删除所有行并获得计数通过“1”作为   whereClause。

在你的情况下:

final String where = "title=?";
final String[] args = new String[] { title };
database.delete(tableName, where, args);