我有一个包含三个字段的简单表格 _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);
我们可以在没有主键的情况下运行查询,也可以在此处运行错误。在早期的情况下,应用程序停止运行。 感谢任何帮助。
答案 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>