更新查询不适用于Android

时间:2013-02-18 09:05:28

标签: android

我有一个包含三个字段的简单表格 _ID 名称 电子邮件

我正在尝试通过搜索

等电子邮件来更新记录名称
db.execSQL("update contacts set email='"+email+"' where name='"+name+"'");

即使使用查询运行它也无法正常工作

ContentValues cv=new ContentValues();
    cv.put("name",n);
    dbase.update(table, cv, "email="+e,null);

我们可以在没有主键的情况下运行查询,也可以在此处运行错误。在早期的情况下,应用程序停止运行。 感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以在没有主键的情况下运行更新。但是,如果我得到你需要的是以下内容:

ContentValues cv=new ContentValues();
cv.put("email",e);
String whereClause = "name = ?";
String [] whereArgs = {n};
dbase.update(table, cv, whereClause, whereArgs);

您希望按name进行搜索,所以就在这里。

始终使用whereArgs设置whereClause参数,否则会冒SQL注入风险 - 参数将不会被清理(这是代码的这一部分:"email="+e)。< / p>