0

我有一个简单的表,其中包含三个字段 _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);

我们可以在没有主键的情况下运行查询吗?或者这个错误是什么。在早期的情况下,应用程序停止运行。感谢任何帮助。

4

1 回答 1

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

于 2013-02-18T09:09:29.870 回答