我创造我的第一个Android应用程序,现在击中一个奇怪的问题当我更新重复列在数据库中创建了我的Android应用
这里列的情况是: 用户可以输入一个数字任何给定日期的价值。
问题: 因此,当用户试图给同一日期的另一个分数时,我们都知道应用程序应该重写旧值并更新用户刚给出的新值。
所以我有一个更新方法,获取rowId并覆盖旧的值由新。但我桌子上发生的事情很可怕。当我更新2011年6月6日的同一日期的数字值时。它创造了另一个纪录,现在我在同一天有两个条目,一个是旧的,一个是新的。然后当我把它做到2011年6月7日的某个其他日期时(例如为日期赋值并更新它),为6/6/2011创建的重复列就消失了,重复列创建为6/7/2011。
updateValue(...){
ContentValues args = new ContentValues();
args.put(KEY_DATESTAMP_SUBTABLE, day);
args.put(KEY_HABIT, habit);
args.put(KEY_USER_SCORE_SUBTABLE, userScore);
args.put(KEY_CALCULATED_SCORE_SUBTABLE,
calculateCompoundScore(scoringMethod, userScore, importance));
String whereClause = KEY_ROWID + "=" + rowId;
return mDb.update(SCORE_TABLE, args, whereClause, null) > 0;
}
有人能解释我这种行为!!!!
我编辑和添加代码:
编辑: 我发现这个问题,这是一个愚蠢的错误,ROWID是一个不同的表的行ID,所以每次我删除使用,它给我狂野的结果。这是我的坏.Bt @ @ Alex的想法帮助我找出更新,因为他说,我先删除然后插入,而这样做,我发现它正在删除一些其他行。
谢谢
请在这里复制你的代码。通过你的解释很难弄清楚你的错误。 – Gopal
@gopal,我添加了代码。 –