Sqlite数据库不更新值

时间:2014-04-28 01:13:59

标签: java android database sqlite android-sqlite

由于某种原因,我的数据库没有更新它的值。根据我一直关注的教程,我真的不知道哪些是错的,这里是databaseAdapter上的代码:

  public boolean updatePhysicalActivity(String tableName, String recommendation, String activityDate, String activityDistance, String activityTime, String monitor, String activityVelocity ){
     ContentValues args = new ContentValues();
     args.put(RECOMMENDATION,recommendation);
     args.put(ACTIVITY_DATE, activityDate);
     args.put(ACTIVITY_DISTANCE, activityDistance);
     args.put(ACTIVITY_TIME, activityTime);
     args.put(ACTIVITY_VELOCITY, activityVelocity);
     args.put(MONITOR, monitor);
     return db.update(tableName, args, ACTIVITY_DATE + "=" + activityDate, null) > 0;
}

我有几个使用相同列的不同表,这就是我在调用update方法时命名表的原因。 我已经调试了程序,所以我知道在这个函数中传递了值,但是当我稍后检查它时,没有任何反应。 此外,我想更新具有相同ACTIVITY_DATE值的表,这就是我使用ACTIVITY_DATE而不是KEYID(在教程中使用)的原因。这可能是问题吗?如果是这样,我该如何解决?

谢谢!

2 个答案:

答案 0 :(得分:0)

update方法具有以下签名:update(table, values, whereClause, whereArgs)

正确的方法是:

whereClause:

ACTIVITY_DATE + “=?”

whereArgs:

new String [] {activityDate}

答案 1 :(得分:0)

您已在此行中省略单引号:

return db.update(tableName, args, ACTIVITY_DATE + "=" + activityDate, null) > 0;

将其更改为:

return db.update(tableName, args, ACTIVITY_DATE + "='" + activityDate +"'", null) > 0;