San*_*til 1 sql sqlite android
我需要从sqlite中删除特定记录.但是下面的代码无法删除它.
请给我一些提示.
public void delete(String Id)
{
try {
db.delete(MySQLiteHelper.TABLE_NAME, "Id=?",
new String[] { Id.toString() });
}
catch(Exception e) { ... }
}
Run Code Online (Sandbox Code Playgroud)
(更新)你应该使用:
db.delete(MySQLiteHelper.TABLE_NAME, "Id=?", new String[] { Id });
Run Code Online (Sandbox Code Playgroud)
实际上它建议不使用'Id',但是BaseColumns._ID,它等于"_id".
编辑:为未来的用户.
以下方法有什么区别:
1. db.delete(MySQLiteHelper.TABLE_NAME, "_id=" + Id, null);
2. db.delete(MySQLiteHelper.TABLE_NAME, "_id=?", new String[] {Id});
3. db.delete(MySQLiteHelper.TABLE_NAME, TABLE.ID_COLUMN_NAME + "=?", new String[] {Id});
Run Code Online (Sandbox Code Playgroud)
我可以说他们都运作良好.第一种方法和第二种方法的区别在于,通常第二种方法比第一种方法更快且更安全.为什么更快?因为Android可以对参数化查询进行缓存,所以此参数化查询在第一次之后会更快.Android无法对第一个查询进行缓存.为什么更安全?它没有SQL注入.
第二种方法和第三种方法的区别在于id列名称在所有查询中都不是硬编码的.您只需定义此字段一次,然后如果更改了列的名称,则只需在一个位置更改它.
| 归档时间: |
|
| 查看次数: |
7766 次 |
| 最近记录: |